【发布时间】:2016-05-26 19:16:45
【问题描述】:
我正在尝试使用 javascript 承诺递归调用异步函数,但没有找到可行的模式。
这是我想象中的工作:
var doAsyncThing = function(lastId){
new Promise(function(resolve, reject){
// async request with lastId
return resolve(response)
}
}
var recursivelyDoAsyncThing = function(lastId){
doAsyncThing(lastId).then(function(response){
return new Promise(function(resolve, reject){
//do something with response
if(response.hasMore){
//get newlastId
return resolve(recursivelyDoAsyncThing(newLastId));
}else{
resolve();
}
});
});
}
recursivelyDoAsyncThing().then( function(){
console.log('done');
});
为什么这不起作用?我误会了什么?
有没有更好的模式来解决这个问题?
【问题讨论】:
标签: javascript recursion promise