成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

記錄Promise的實踐

mengbo / 1552人閱讀

摘要:實踐實踐需求就是常見的緩存,如果有緩存使用緩存,沒有拉鏈?zhǔn)?,邏輯清晰如果中間不想返回了怎么辦既支持回調(diào),又支持就是還是有但是整體作為個返回這里用包裝,和一個效果函數(shù)就是返回中斷鏈條

Promise實踐

Promise實踐

需求就是常見的緩存,如果有緩存使用緩存,沒有api拉.

1.鏈?zhǔn)?,邏輯清?/p>

P.then().then().catch()

2.then chain如果中間不想返回了怎么辦

Promise.reject in then

3.Promisify,既支持回調(diào),又支持Promise

就是function還是有callback但是整體作為1個Promise返回.

這里用async包裝,和new Promise一個效果.

async函數(shù)就是返回Promise.

fetchImgUrl: async function (url, fn, cached = true) {
    if (cached) {
      //Best practice for Promise then chain with async/await ....
      return await cache.store.getItem(url).then(value => {
        if (!value) {
          console.log("1st time");
          return api.get(url + "?json=true", {})
        } else {
          fn(value);
          // 中斷then鏈條,
          // throw error to stop then chain
          // throw new Error("Already cached")
          //or reject , better
          return Promise.reject("Already cached");
        }
      }).then((response) => {
          console.log(response)
          fn(response.data.url);
          return response.data.url;
      }).then(response => {
          cache.store.setItem(url, response)
          console.log(`cache: ${response} ok`);
      }).catch(e => {
        console.log(e);
      })
    } else {
      return axios.get(url + "?json=true", {}).then((response) => {
          fn(response.data.url);
        }
      ).catch(e=>{
        console.log(e);
      });
    }

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

轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/106776.html

相關(guān)文章

  • 從0開始擼一個Promise(一)

    摘要:說白了,就是給聲明的添加一個包含空的對象,再由函數(shù)返回這個空。如此構(gòu)成一個層層包裹的鏈。四首先本質(zhì)是一個遞歸函數(shù),結(jié)束條件是,即終止到未掛載對象的子為止??梢钥吹竭@個函數(shù)的作用就是根據(jù)屬性逐個觸發(fā)鏈中的或函數(shù)。 背景 Promise是一種非常實用的異步編程方案,本文對于Promise源碼的分析可以增進讀者對于Promise原理的理解,以后不再害怕異步編程,不用擔(dān)心callback he...

    MSchumi 評論0 收藏0
  • JavaScript 異步

    摘要:從最開始的到封裝后的都在試圖解決異步編程過程中的問題。為了讓編程更美好,我們就需要引入來降低異步編程的復(fù)雜性。寫一個符合規(guī)范并可配合使用的寫一個符合規(guī)范并可配合使用的理解的工作原理采用回調(diào)函數(shù)來處理異步編程。 JavaScript怎么使用循環(huán)代替(異步)遞歸 問題描述 在開發(fā)過程中,遇到一個需求:在系統(tǒng)初始化時通過http獲取一個第三方服務(wù)器端的列表,第三方服務(wù)器提供了一個接口,可通過...

    tuniutech 評論0 收藏0
  • 音頻組件開發(fā)實踐

    摘要:相關(guān)操作音頻的打斷音頻的打斷包括兩種情況組件重新上傳新的語音第一種情況,解綁相關(guān)事件,釋放內(nèi)存。當(dāng)瀏覽器預(yù)計能夠在不停下來進行緩沖的情況下持續(xù)播放指定的音頻視頻時,會發(fā)生事件。 我的blog原文鏈接 最近公司迭代的項目中,新增了音頻播放功能,填了不少音頻的坑,總結(jié)一下: 需求: 交互需求: 上傳:點擊按鈕上傳語音,返回文件id(上傳文件的范疇,本文不會闡述) 播放:點擊播放按鈕,異...

    qpwoeiru96 評論0 收藏0
  • [譯]Express在生產(chǎn)環(huán)境下最佳實踐 - 性能和可靠性

    摘要:前言這將是一個分為兩部分,內(nèi)容是關(guān)于在生產(chǎn)環(huán)境下,跑應(yīng)用的最佳實踐。第一部分會關(guān)注安全性,第二部分則會關(guān)注性能和可靠性。關(guān)于第一部分,請參閱在生產(chǎn)環(huán)境下的最佳實踐安全性。 前言 這將是一個分為兩部分,內(nèi)容是關(guān)于在生產(chǎn)環(huán)境下,跑Express應(yīng)用的最佳實踐。第一部分會關(guān)注安全性,第二部分則會關(guān)注性能和可靠性。當(dāng)你讀這篇文章時,會假設(shè)你已經(jīng)對Node.js和web開發(fā)有所了解,并且對生產(chǎn)環(huán)...

    Luosunce 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<