当下面的函数完成并提供数组“albums”中项目的最终列表时,希望它调用另一个函数/执行其他操作。目前在函数完成之前,它会发布[],我知道这是由于异步执行引起的,但我认为Node读取线性,因为它是单线程的?
function getAlbumsTotal(list, params){
for(var i = 0; i<list.length; i++){
api.getArtistAlbums(list[i], params).then(function(data) {
for(var alb = 0; alb<data.body.items.length; alb++){
albums.push(data.body.items[alb].id);
}
}, function(err) {
console.error(err);
});
}
console.log(albums);
//do something with the finalized list of albums here
}
function getAlbumsTotal(list, params){ for(var i = 0; i这会是同样的解决方案吗?编辑:我想它不会添加空格,而是函数的函数。
- RalphPromise.all
这样将所有内容汇集在一起的东西。如果没有它,您将不得不开始计算回调的最后一次调用。 - trincot