国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

記錄Promise的實踐

mengbo / 1502人閱讀

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

Promise實踐

Promise實踐

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

1.鏈式,邏輯清晰

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

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

Promise.reject in then

3.Promisify,既支持回調,又支持Promise

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

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

async函數就是返回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);
      });
    }

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/106776.html

相關文章

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

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

    MSchumi 評論0 收藏0
  • JavaScript 異步

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

    tuniutech 評論0 收藏0
  • 音頻組件開發實踐

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

    qpwoeiru96 評論0 收藏0
  • [譯]Express在生產環境下最佳實踐 - 性能和可靠性

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

    Luosunce 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<