小编ams*_*ams的帖子

javascript承诺递归

我有一个异步递归函数,如果还有更多的工作需要返回promise,否则返回结果数组.如果不涉及递归,它会正确返回数组,但是当递归时,数组是未定义的.代码是

function foo(filepath) {

  var resultArr = [];

  function doo(file) {
        return asyncOperation(file).then(resp => {
            resultArr.push(resp.data);
            if (resp.pages) {
                var pages = resp.pages.split(',');
                pages.forEach(page => {
                    return doo(page);
                });
            } else {
                return resultArr;
            }
        });
    }

    return doo(filepath);
}
Run Code Online (Sandbox Code Playgroud)

以及这个被称为的方式

foo(abcfile).then(function(result){
    console.log(result);
});
Run Code Online (Sandbox Code Playgroud)

如果我传递没有resp.pages的abcfile,我得到结果数组,但是有resp.pages,那么结果数组是未定义的.

javascript recursion es6-promise

6
推荐指数
1
解决办法
417
查看次数

标签 统计

es6-promise ×1

javascript ×1

recursion ×1