实现递归异步功能?

时间:2018-09-19 14:55:09

标签: javascript node.js

我有一个需要多次调用的Node.js函数,它是一个返回名称的API函数,但是它一次可以返回的数量受到限制。这样,它会自行调用,直到没有名称可供检索为止。

我的目标是只记录最终结果:

someLibrary.getNames('').then((r) => {
    console.log(r);
})

getNames函数:

    getNames: function(start) { // start is = last name fetched
    return SomeApi.fetchNames(start).then(function(names) {
        if (names.length > 0) {
            Array.prototype.push.apply(nameList, names); // nameList is defined outside
            start = names[names.length - 1][0];
            api.getNames(start);
        } else {
            // We're done
            return nameList;
        }
    }, function (error) {
        console.error('Could not retrieve: \n', error.data);
    });
}

module.exports = api;

如果我检查getNames()函数,可以看到nameList正确填充了我需要的数据,我只想能够返回此数据并从someLibrary.getNames()的.then()中使用它。 ,我似乎无法解决这个问题。

0 个答案:

没有答案