所以,我有一个类似的代码。
"Hello"
我想把它变成类似的东西。
getSomethingAsync(something)
.then(doSomethingAsync)
.then(function(d) {
_d = doSomethingSync(d);
return doSomethingAsyncNext(_d);
})
.then(function(val) {
//All done
})
.catch(err_handler);
我是否应该更改doSomethingSync:
getSomethingAsync(something)
.then(doSomethingAsync)
.then(doSomethingSync)
.then(doSomethingAsyncNext)
.then(function(val) {
//All done
})
.catch(err_handler);
为:
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);
});
}
答案 0 :(得分:5)
我应该改变doSomethingSync,这是......
你不必改变一切。如果回调的返回值不一个承诺,它将直接用于解析.then
返回的承诺。 .then
回调没有 来返回承诺。
你可以写
return Promise.resolve(changed_data);
但同样,没有必要。 return changed_data;
也可以正常运作。