第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

Promise源碼中safeThen函數(shù)如何理解?

Promise源碼中safeThen函數(shù)如何理解?

明月笑刀無情 2019-03-14 18:15:31
源碼看這里Promise.prototype.then = function(onFulfilled, onRejected) {  if (this.constructor !== Promise) {    return safeThen(this, onFulfilled, onRejected);  }  var res = new Promise(noop);  handle(this, new Handler(onFulfilled, onRejected, res));  return res;};function safeThen(self, onFulfilled, onRejected) {  return new self.constructor(function (resolve, reject) {    // 以下不是很理解    var res = new Promise(noop);    res.then(resolve, reject);    handle(self, new Handler(onFulfilled, onRejected, res));  });}
查看完整描述

3 回答

?
12345678_0001

TA貢獻(xiàn)1802條經(jīng)驗 獲得超5個贊

沒太研究過,這應(yīng)該是某個polyfill的Promise實現(xiàn)吧?V8的Promise應(yīng)該是cpp寫的。

這段代碼看起來應(yīng)該是為了讓一些繼承自Promise的子類運行正常。


查看完整回答
反對 回復(fù) 2019-03-29
?
搖曳的薔薇

TA貢獻(xiàn)1793條經(jīng)驗 獲得超6個贊

最好附上這段代碼的來源,因為 Promise 有很多實現(xiàn),這樣寫看不太出來作者有何想法。

另外還有一個辦法,尋找這一行的提交記錄,看看作者寫的時候是怎么想的。


查看完整回答
反對 回復(fù) 2019-03-29
?
德瑪西亞99

TA貢獻(xiàn)1770條經(jīng)驗 獲得超3個贊

就比如


const getVal = new P(resolve => resolve('todo'));

getVal.then.bind(window).then((val) => { console.log(val) });


// 上面的bind改變了then的上下文,就會安全的執(zhí)行safeThen


查看完整回答
反對 回復(fù) 2019-03-29
  • 3 回答
  • 0 關(guān)注
  • 645 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號