我想弄清楚是否可以在递归函数中使用 promise 而不是标准回调。
我现在的方式:
function recursive(data, cb){
(function promiseProvider(data){
return newThenable(data).then(function(val){
if(val.a){
cb(null, val);
}
else {
return promiseProvider(val);
}
});
})(data);
}
这行得通,但我不知道如何才能实现纯 promise 。
也许这行得通?
function recursive(data){
return newThenable(data).then(function(val){
if(val.a){
return // <<< ???
}
else {
return recursive(val);
}
});
}
但是,这不起作用。
最佳答案
假设您使用 val
作为结果参数调用回调,只需
return val;
来自 then
回调。就是这样。
function recursive(data){
return newThenable(data).then(function(val){
if (val.a){
return val;
} else {
return recursive(val);
}
});
}
关于javascript - 使用具有递归函数的 promise ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40544891/