javascript - 有一個非同步獲取資料的函數A,其他依賴這個A得到的資料的函數是否都必須是非同步的?
黄舟
黄舟 2017-07-05 11:05:24
0
3
837

現在是這樣,函數a是Promise非同步返回數據,其他很多函數需要用到這個數據,我現在是每個依賴這個數據的函數都要a().then()這樣處理

function a() { return new Promise((resolve, reject) => { .... }) } function getsub(id) { return a() .then((data) => { return ..... }) .catch((err) => {...}) } function tree(id) { return a() .then((data) => { return ..... }) .catch((err) => {...}) }

其中有一些遞歸循環依賴,複雜度增加後我感覺我要瘋了,有沒有其他好點的寫法啊?

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回覆 (3)
小葫芦

可以用點函數式程式設計的寫法:

function mapData(call) { return () => a() .then((data) => call(data)) .catch((err) => call(null, err)) } function sub(data, err) { ... } function sub2(data, err) { ... } function sub3(data, err) { ... } const getsub = mapData(sub) const getsub2 = mapData(sub2) const getsub3 = mapData(sub3)
    女神的闺蜜爱上我

    試試看 ES7 的 async/await ?
    或 引入 async.js 函式庫,前後端通用。

      迷茫

      如果實時性和獨立性要求都很高,那好像是沒什麼辦法...不然可以嘗試緩存a...看看其他人怎麼說

        最新下載
        更多>
        網站特效
        網站源碼
        網站素材
        前端模板
        關於我們 免責聲明 Sitemap
        PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!