亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

從then()返回值或Promise.resolve有什么區別

從then()返回值或Promise.resolve有什么區別

楊魅力 2020-02-03 15:01:18
之間有什么區別?new Promise(function(res, rej) {    res("aaa");  })  .then(function(result) {    return "bbb";  })  .then(function(result) {    console.log(result);  });還有這個:new Promise(function(res, rej) {    res("aaa");  })  .then(function(result) {    return Promise.resolve("bbb");  })  .then(function(result) {    console.log(result);  });我問的是我正在使用Angular和$ http服務以及鏈接.then()時出現不同的行為。因此,代碼太多了,因此首先是上面的示例。
查看完整描述

3 回答

?
守著一只汪

TA貢獻1872條經驗 獲得超4個贊

您的兩個示例的行為應該幾乎相同。


在then()處理程序內返回的值將成為從該處理程序返回的promise的分辨率值then()。如果在內部返回的值.then 是一個承諾,則所返回的承諾then()將“采用該承諾的狀態”,并像返回的承諾一樣進行解析/拒絕。


在第一個示例中,您返回"bbb"第一個then()處理程序,因此"bbb"將其傳遞給下一個then()處理程序。


在第二個示例中,您返回一個Promise,該Promise立即用value解析"bbb",因此"bbb"被傳遞到下一個then()處理程序中。(Promise.resolve()這里是多余的)。


結果是一樣的。


如果您可以向我們展示一個實際表現出不同行為的示例,那么我們可以告訴您為什么會發生這種情況。


查看完整回答
反對 回復 2020-02-03
  • 3 回答
  • 0 關注
  • 3556 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號