亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

我不得不知道的promise知識(shí)點(diǎn)

crelaber / 3136人閱讀

摘要:值得注意的一點(diǎn)是,不僅僅可以傳一個(gè)進(jìn)去,他還可以傳對(duì)象和對(duì)象。方法返回一個(gè)以給定值解析后的對(duì)象。

文章背景:前幾天在讀給某個(gè)同事提了一個(gè)很蠢的問題,然后被吐槽api不熟悉,于是決定寫一篇文章整理一下在開發(fā)&學(xué)習(xí)過程中promise一些需要了解的特性.

我當(dāng)時(shí)的問題

我當(dāng)時(shí)沒看懂什么意思,后來理解了這段話要表達(dá)的是,如果直接在一個(gè)不知道是否返回標(biāo)準(zhǔn)promsie的值上面直接調(diào)用then ,可能會(huì)產(chǎn)生報(bào)錯(cuò)。

正題
1promise的控制反轉(zhuǎn)
例子:
定義一個(gè)把promise的回調(diào)暴露出來的方法

module.exports = function createExposedPromise () {
  let resolve, reject
  const promise = new Promise((rs, rj) => {
    resolve = rs
    reject = rj
  })
  return {
    promise,
    executor: {
      resolve,
      reject
    }
  }
}

使用

  const AEMonitorServer = createScriptMonitor(
    AE_SCRIPT_MONITOR_DEFUALTS.host,
    AE_SCRIPT_MONITOR_DEFUALTS.port,
    data => handleMonitorMessage(data, statusPromiseMap, quickLogger),
    error => handleMonitorError(error, AEMonitorErrorPromise.executor.reject)
  )

當(dāng)我們promise的狀態(tài)依賴于另外一個(gè)異步事件,但是另外一個(gè)異步事件是cb形式的,為了和我們外部的promise建立聯(lián)系,我們就使用promise的控制反轉(zhuǎn)的功能實(shí)現(xiàn).把promise的reject和resolve暴露出來,就可以在cb里面改變promise的狀態(tài)了。

2
promise.resolve
值得注意的一點(diǎn)是,resolve不僅僅可以傳一個(gè)value進(jìn)去 ,他還可以傳 promsie對(duì)象和thnable對(duì)象。

mdn 
https://developer.mozilla.org...
Promise.resolve(value)方法返回一個(gè)以給定值解析后的Promise 對(duì)象。但如果這個(gè)值是個(gè)thenable(即帶有then方法),返回的promise會(huì)“跟隨”這個(gè)thenable的對(duì)象,采用它的最終狀態(tài)(指resolved/rejected/pending/settled);如果傳入的value本身就是promise對(duì)象,則該對(duì)象作為Promise.resolve方法的返回值返回;否則以該值為成功狀態(tài)返回promise對(duì)象。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/109646.html

相關(guān)文章

  • 前端基礎(chǔ)進(jìn)階(十三):透徹掌握Promise使用,讀這篇就夠了

    摘要:在對(duì)象的構(gòu)造函數(shù)中,將一個(gè)函數(shù)作為第一個(gè)參數(shù)。二對(duì)象中的方法,可以接收構(gòu)造函數(shù)中處理的狀態(tài)變化,并分別對(duì)應(yīng)執(zhí)行。 showImg(https://segmentfault.com/img/remote/1460000008932857); Promise的重要性我認(rèn)為我沒有必要多講,概括起來說就是必須得掌握,而且還要掌握透徹。這篇文章的開頭,主要跟大家分析一下,為什么會(huì)有Promise...

    yy736044583 評(píng)論0 收藏0
  • ES6-7

    摘要:的翻譯文檔由的維護(hù)很多人說,阮老師已經(jīng)有一本關(guān)于的書了入門,覺得看看這本書就足夠了。前端的異步解決方案之和異步編程模式在前端開發(fā)過程中,顯得越來越重要。為了讓編程更美好,我們就需要引入來降低異步編程的復(fù)雜性。 JavaScript Promise 迷你書(中文版) 超詳細(xì)介紹promise的gitbook,看完再不會(huì)promise...... 本書的目的是以目前還在制定中的ECMASc...

    mudiyouyou 評(píng)論0 收藏0
  • [譯] 深入理解 Promise 五部曲:5. LEGO

    摘要:一個(gè)就像一個(gè)樂高玩具。問題是不是你小時(shí)候玩兒的那個(gè)有趣,它們不是充滿想象力的打氣筒,也不是一種樂高玩具。這是對(duì)的并不是給開發(fā)者使用的,它們是給庫作者使用的。不會(huì)超過這兩種情況。第二個(gè)是根據(jù)第一個(gè)處理函數(shù)如何運(yùn)行來自動(dòng)變成狀態(tài)成功或者失敗。 原文地址:http://blog.getify.com/promis... 在 Part4:擴(kuò)展問題 中,我討論了如何擴(kuò)展和抽象Promise是多么...

    LiveVideoStack 評(píng)論0 收藏0
  • JavaScript 運(yùn)行機(jī)制詳解(理解同步、異步和事件循環(huán))

    摘要:從異步過程的角度看,函數(shù)就是異步過程的發(fā)起函數(shù),事件監(jiān)聽函數(shù)就是異步過程的回調(diào)函數(shù)。事件觸發(fā)時(shí),表示異步任務(wù)完成,會(huì)將事件監(jiān)聽器函數(shù)封裝成一條消息放到消息隊(duì)列中,等待主線程執(zhí)行。 1.為什么JavaScript是單線程? JavaScript語言的一大特點(diǎn)就是單線程,也就是說,同一個(gè)時(shí)間只能做一件事。那么,為什么JavaScript不能有多個(gè)線程呢?這樣能提高效率啊。JavaScrip...

    loonggg 評(píng)論0 收藏0
  • ES6,你得不學(xué)!

    摘要:但是,的本質(zhì)仍然是函數(shù),是構(gòu)造函數(shù)的另外一種寫法。報(bào)錯(cuò)原生構(gòu)造函數(shù)的繼承對(duì)于一些原生的構(gòu)造函數(shù),比如,,,等,在是無法通過方法實(shí)現(xiàn)原生函數(shù)的內(nèi)部屬性,原生函數(shù)內(nèi)部的無法綁定,內(nèi)部屬性獲得不了。 在沒有學(xué)習(xí) ES6 之前,學(xué)習(xí) React,真的是一件非常痛苦的事情。即使之前你對(duì) ES5 有著很好的基礎(chǔ),包括閉包、函數(shù)、原型鏈和繼承,但是 React 中已經(jīng)普遍使用 ES6 的語法,包括 ...

    CKJOKER 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<