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