javascript - 使用具有递归函数的 promise

标签 javascript node.js recursion promise es6-promise

我想弄清楚是否可以在递归函数中使用 promise 而不是标准回调。

我现在的方式:

function recursive(data, cb){

     (function promiseProvider(data){

          return newThenable(data).then(function(val){
                 if(val.a){
                    cb(null, val);
                 }
                 else {
                    return promiseProvider(val);
                 }

          });

     })(data);

}

这行得通,但我不知道如何才能实现纯 promise 。

也许这行得通?

  function recursive(data){

      return newThenable(data).then(function(val){
               if(val.a){
                  return // <<< ???
                 }
                 else {
                   return recursive(val);
                 }

        });

     }

但是,这不起作用。

最佳答案

假设您使用 val 作为结果参数调用回调,只需

return val;

来自 then 回调。就是这样。

function recursive(data){
     return newThenable(data).then(function(val){
         if (val.a){
             return val;
         } else {
             return recursive(val);
         }
     });
 }

关于javascript - 使用具有递归函数的 promise ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40544891/

相关文章:

javascript - 是否有模拟触摸事件的附加组件或扩展?

javascript - 如何在 JavaScript 的 DIV 中从范围的开始和结束获取 innerHTML

node.js - Sequelize – id as uuid – 使用 bulkInsert 自动创建

javascript - 如何允许用户在 Node JS Passport JS 失败后尝试使用不同的电子邮件?

c# - 从数字数组中找出所有的加减法组合

javascript - 在javascript中从数组访问对象?

javascript - AngularJS 中的分页和过滤不稳定

javascript - 使用 RTCPeerConnection 将数据文件发送到另一台计算机?

node.js - Mongodb Nodejs查询语法错误

python - 如何让我的 python 程序运行得更快?