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


如您所知,此代码无法正常工作,因为在将令牌值设置为nextToken值之前,while循环将继续。有没有办法获取所有数据?

最佳答案

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

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
});

10-06 12:00