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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

關(guān)于Promises / A +規(guī)范,術(shù)語“可以”和“承諾”之間有什么區(qū)別?

關(guān)于Promises / A +規(guī)范,術(shù)語“可以”和“承諾”之間有什么區(qū)別?

肥皂起泡泡 2019-11-03 04:04:23
關(guān)于Promises / A +規(guī)范,術(shù)語“可以”和“承諾”之間有什么區(qū)別?我正在檢查“Promises / A +”規(guī)范,但無法理解以下內(nèi)容:在第1節(jié)。術(shù)語,1.1。"promise”是一個(gè)具有then方法的對(duì)象或函數(shù),其行為符合此規(guī)范。1.2?!皌henable”是定義then方法的對(duì)象或函數(shù)。那么術(shù)語"thenable"和有"promise"什么區(qū)別?同樣在2.3節(jié)。承諾解決程序,promise解析過程是一個(gè)抽象操作,它將promise和value作為輸入,我們將其表示為[[Resolve]](promise, x)。所以我的問題是:為什么在2個(gè)開始和結(jié)束括號(hào)內(nèi)表示?有沒有約定?非常感謝你。
查看完整描述

2 回答

?
墨色風(fēng)雨

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

那么術(shù)語“可以”和“承諾”之間有什么區(qū)別?

我認(rèn)為您已經(jīng)引用的部分確實(shí)很好地回答了這個(gè)問題:

  • 一個(gè)是一個(gè)帶有then方法的對(duì)象。任何對(duì)象。

  • promise是一個(gè)具有符合規(guī)范的then方法(即,thenable)的對(duì)象。

到目前為止這么簡(jiǎn)單。我認(rèn)為你的實(shí)際問題是:“ 為什么他們會(huì)被區(qū)分? ”

問題在于,通過查看對(duì)象,您無法確定它是否是一個(gè)承諾。
可能會(huì)告訴它這是一個(gè)承諾,因?yàn)槟梢钥吹剿?code>then方法是由您自己或您信任的人實(shí)現(xiàn)的 - 通常是您選擇的承諾庫(kù)。您將能夠“看到”因?yàn)閷?duì)象確實(shí)從您的promise原型繼承,或者您甚至可以比較與您定義的函數(shù)相同的(引用)方法?;蛉魏纹渌阋詽M足您的檢查方法。
可能會(huì)告訴它它不是一個(gè)承諾,因?yàn)樗鼪]有then方法。
但是你如何處理一個(gè)實(shí)現(xiàn)的對(duì)象then,但不知道是一個(gè)承諾?這是一個(gè)很好的,并將按此處理。

Promises / A +規(guī)范旨在實(shí)現(xiàn)promise實(shí)現(xiàn)之間的互操作性,并使用鴨子類型.then()方法的存在。它確實(shí)指定了一個(gè)關(guān)于如何處理這樣的可能性(可能是承諾或至少具有類似行為)的精確算法,以便您可以從它們創(chuàng)建實(shí)際的,可信的(“已知”)承諾。

為什么在2個(gè)開始和結(jié)束括號(hào)內(nèi)表示?有沒有約定?

是的,ECMAScript規(guī)范將此語法用于內(nèi)部方法和屬性

內(nèi)部屬性的名稱用雙方括號(hào)[[]]括起來。

這些屬性實(shí)際上并不需要存在,它們純粹用于描述應(yīng)該發(fā)生的事情 - 實(shí)現(xiàn)必須使用它們一樣。但它們完全是抽象的操作。



查看完整回答
反對(duì) 回復(fù) 2019-11-04
?
暮色呼如

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超9個(gè)贊

這是一個(gè)聰明的嘗試,使promises更容易在不同的庫(kù)之間互操作。


該規(guī)范thenable僅在少數(shù)幾個(gè)地方使用該術(shù)語。這是最重要的(empasis mine):


promise解析過程是一個(gè)抽象操作,它將promise和value作為輸入,我們將其表示為[[Resolve]](promise, x)。如果x是一個(gè)可能的,它會(huì)嘗試使x采用x的狀態(tài),假設(shè)x的行為至少有點(diǎn)像promise。否則,它滿足x值的承諾。


這將使實(shí)現(xiàn)者進(jìn)行如下檢查:


if (typeof(x.then) === 'function') {

    // adopt the state of x

} else {

    // fulfill promise with value x

}

如果規(guī)范改為說“如果x是承諾,那么......”,實(shí)施者將如何知道是否x是承諾?沒有實(shí)際的方法可以確保是否x通過檢查來遵守Promise規(guī)范。


一個(gè)實(shí)現(xiàn)者(比如,庫(kù)FooPromises可能會(huì)做類似的事情


if (x instanceof FooPromises.Promise) {

    // adopt the state of x

} else {

    // fulfill promise with value x

}

它會(huì)有效地拒絕來自不同實(shí)現(xiàn)的任何承諾。


相反,通過thenable在這種條件下使用超級(jí)簡(jiǎn)單的定義,實(shí)現(xiàn)者可以輕松驗(yàn)證,進(jìn)行此檢查并使實(shí)現(xiàn)彼此之間的相關(guān)性變得微不足道。


對(duì)于你的第二個(gè)問題,我不確定,但我的想法是,一個(gè)符號(hào)[[Resolve]](promise, x)強(qiáng)調(diào)它是一個(gè)抽象的操作。如果他們放下括號(hào)并且只是說Resolve(promise, x),它會(huì)以某種方式暗示實(shí)現(xiàn)者應(yīng)該創(chuàng)建一個(gè)名為的實(shí)際函數(shù)Resolve并將其暴露出來。


這不是必需的 - Resolve不是承諾界面的一部分; 它只是他們行為的一部分,非常重要,它在文檔中被賦予了一個(gè)名稱和一個(gè)單獨(dú)的部分。



查看完整回答
反對(duì) 回復(fù) 2019-11-04
  • 2 回答
  • 0 關(guān)注
  • 400 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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