3 回答

TA貢獻(xiàn)1869條經(jīng)驗 獲得超4個贊
promiseA
的then
函數(shù)返回一個新的承諾(promiseB
)被立即解決后promiseA
解決了,它的價值是什么,從內(nèi)成功函數(shù)返回的值promiseA
。
在這種情況下promiseA
,使用值result
解析- 然后立即promiseB
使用值解析result + 1
。
訪問值的promiseB
方式與訪問結(jié)果的方式相同promiseA
。
promiseB.then(function(result) { // here you can use the result of promiseB});

TA貢獻(xiàn)1874條經(jīng)驗 獲得超12個贊
當(dāng)一個promise被解決/拒絕時,它會調(diào)用它的成功/錯誤處理程序:
var promiseB = promiseA.then(function(result) { // do something with result});
該then
方法還返回一個promise:promiseB,它將根據(jù)來自promiseA的成功/錯誤處理程序的返回值進(jìn)行解析/拒絕。
promiseA的成功/錯誤處理程序可以返回三個可能的值,這將影響promiseB的結(jié)果:
1. Return nothing --> PromiseB is resolved immediately, and undefined is passed to the success handler of promiseB2. Return a value --> PromiseB is resolved immediately, and the value is passed to the success handler of promiseB3. Return a promise --> When resolved, promiseB will be resolved. When rejected, promiseB will be rejected. The value passed to the promiseB's then handler will be the result of the promise
有了這種理解,您可以理解以下內(nèi)容:
promiseB = promiseA.then(function(result) { return result + 1;});
then調(diào)用立即返回promiseB。當(dāng)promiseA解決后,它會將結(jié)果傳遞給promiseA的成功處理程序。由于返回值是promiseA的結(jié)果+ 1,因此成功處理程序返回一個值(上面的選項2),因此promiseB將立即解析,并且promiseB的成功處理程序?qū)鬟fpromiseA的結(jié)果+ 1。

TA貢獻(xiàn)1830條經(jīng)驗 獲得超3個贊
.then
promiseB的函數(shù)接收.then
promiseA函數(shù)返回的內(nèi)容。
這里promiseA返回的是一個數(shù)字,它將作為number
promiseB成功函數(shù)中的參數(shù)提供。然后將增加1
添加回答
舉報