node.js - Nodejs 循环中的 promise

标签 node.js callback

let token = null;
let allData = [];
while( true) {
  getData( token).then( function( data, nextToken){
    token = nextToken;
    allData.push( data);
  });
  if( token == null) break;
}
return allData;

如您所知,这段代码不起作用,因为我除外,因为 while 循环将在 token 值设置为 nextToken 值之前继续。有没有办法获取所有数据?

最佳答案

您可以为此使用递归函数。

function getDataRecursive(token, data = []) {
    return getData(token).then((newData, nextToken) => {
        if(nextToken === null) {
            return [...data, newData];
        }
        return getDataRecursive(nextToken, data);
    });
}

getDataRecursive(token).then((data) => {
    console.log(data); // Will contain your array of data
});

关于node.js - Nodejs 循环中的 promise ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50113291/

相关文章:

javascript - 将模板引擎加载到node.js/express中

javascript - Uncaught Error : Cannot find module '_process' (JavaScript/Browserify)

c++ - 指向具有不同参数的成员函数的指针的容器

angularjs - Angular - 在服务 $http 调用后设置 Controller 变量

node.js - 将 JSON 对象从 Express 服务器发送到 React 时 undefined object ?

sql - 如何使用外键选择用户集合?

javascript - 从路由目录中的文件导出时,为什么我的 View 没有返回?

javascript - 将值从组件中的回调传递到另一个组件

ruby-on-rails - rails 。保存时更新模型属性

javascript - 需要帮助分解 JavaScript 函数