本文翻译自:What's the difference between returning value or Promise.resolve from then()
What is the difference between: 有什么区别:
new Promise(function(res, rej) { res("aaa"); }) .then(function(result) { return "bbb"; }) .then(function(result) { console.log(result); });
and this: 还有这个:
new Promise(function(res, rej) { res("aaa"); }) .then(function(result) { return Promise.resolve("bbb"); }) .then(function(result) { console.log(result); });
I'm asking as I'm getting different behaviour Using Angular and $http service with chaining .then(). 我问我使用Angular和$ http服务与链接.then()有不同的行为。 A bit too much code hence first the example above. 有点太多的代码因此首先是上面的例子。
#1楼
参考:https://stackoom.com/question/1Si0z/从那时起返回值或Promise-resolve有什么区别
#2楼
Both of your examples should behave pretty much the same. 您的两个示例都应该表现得非常相似。
A value returned inside a then()
handler becomes the resolution value of the promise returned from that then()
. then()
处理程序中返回的值将成为从then()
返回的promise的解析值。 If the value returned inside the .then
is a promise, the promise returned by then()
will "adopt the state" of that promise and resolve/reject