Ale*_*lls 1 javascript recursion node.js promise es6-promise
我试图找出是否有可能在递归函数中使用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);
}
Run Code Online (Sandbox Code Playgroud)
这行得通,但是我无法弄清楚如何实现纯粹的promise实现。
也许这行得通吗?
function recursive(data){
return newThenable(data).then(function(val){
if(val.a){
return // <<< ???
}
else {
return recursive(val);
}
});
}
Run Code Online (Sandbox Code Playgroud)
但是,这不起作用。
假设您使用val结果参数调用回调,则只需
return val;
Run Code Online (Sandbox Code Playgroud)
从then回调。而已。
function recursive(data){
return newThenable(data).then(function(val){
if (val.a){
return val;
} else {
return recursive(val);
}
});
}
Run Code Online (Sandbox Code Playgroud)