所以,我有一个类似这样的代码。
getSomethingAsync(something)
.then(doSomethingAsync)
.then(function(d) {
_d = doSomethingSync(d);
return doSomethingAsyncNext(_d);
})
.then(function(val) {
//All done
})
.catch(err_handler);
我想把它变成类似的东西。
getSomethingAsync(something)
.then(doSomethingAsync)
.then(doSomethingSync)
.then(doSomethingAsyncNext)
.then(function(val) {
//All done
})
.catch(err_handler);
我应该改变 doSomethingSync 吗:
function(data) {
// do a lot of things with data, throw errors for invalid data
return changed_data;
}
至:
function(data) {
// do a lot of things with data, throw errors for invalid data
return new Promise(function(resolve,reject){
resolve(changed_data);
});
}
或者:
function(data) {
return new Promise(function(resolve,reject){
// do a lot of things with data, reject for invalid data
resolve(changed_data);
});
}
最佳答案
Should I just change doSomethingSync which is ...
您不必全部更改。如果回调的返回值不是一个promise,则直接用于解析.then
返回的promise。 .then
回调没有返回一个promise。
你可以写
return Promise.resolve(changed_data);
但同样,没有必要。 returnchanged_data;
也同样有效。
关于javascript - Promise 同步函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31367071/