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

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

如何同步確定JavaScript Promise的狀態(tài)?

如何同步確定JavaScript Promise的狀態(tài)?

寶慕林4294392 2019-11-28 15:11:44
我有一個純JavaScript Promise(內(nèi)置實現(xiàn)或poly-fill):var promise = new Promise(function (resolve, reject) { /* ... */ });根據(jù)規(guī)范,Promise可以是以下之一:“解決”和“解決”“解決”和“拒絕”“待定”我有一個用例,希望同步查詢Promise并確定:承諾解決了嗎?如果是這樣,承諾是否得到解決?我知道我可以#then()用來安排Promise更改狀態(tài)后異步執(zhí)行的工作。我不是問怎么做。這個問題專門關于無條件狀態(tài)的同步詢問。我該如何實現(xiàn)?
查看完整描述

3 回答

?
料青山看我應如是

TA貢獻1772條經(jīng)驗 獲得超8個贊

不存在用于本機JavaScript承諾的此類同步檢查API。憑本地承諾是不可能做到這一點的。規(guī)范未指定這種方法。

Userland庫可以做到這一點,如果您要針對特定的引擎(例如v8)并可以訪問平臺代碼(即可以在core中編寫代碼),則可以使用特定的工具(例如私有符號)來實現(xiàn)這一目標。 。這是非常具體的,但不是在用戶領域。


查看完整回答
反對 回復 2019-11-28
?
慕絲7291255

TA貢獻1859條經(jīng)驗 獲得超6個贊

promise-status-async可以解決問題。它是異步的,但是它并不then用于等待諾言被解決。


const {promiseStatus} = require('promise-status-async');

// ...

if (await promiseStatus(promise) === 'pending') {

    const idle = new Promise(function(resolve) {

        // can do some IDLE job meanwhile

    });

    return idle;

}


查看完整回答
反對 回復 2019-11-28
?
MYYA

TA貢獻1868條經(jīng)驗 獲得超4個贊

不,沒有同步API,但這是我的異步版本promiseState(在@Matthijs的幫助下):


function promiseState(p) {

  const t = {};

  return Promise.race([p, t])

    .then(v => (v === t)? "pending" : "fulfilled", () => "rejected");

}


var a = Promise.resolve();

var b = Promise.reject();

var c = new Promise(() => {});


promiseState(a).then(state => console.log(state)); // fulfilled

promiseState(b).then(state => console.log(state)); // rejected

promiseState(c).then(state => console.log(state)); // pending


查看完整回答
反對 回復 2019-11-28
  • 3 回答
  • 0 關注
  • 2035 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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