色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術文章
文章詳情頁

javascript - 有一個異步獲取數據的函數A,其他依賴這個A得到的數據的函數是否都必須是異步的?

瀏覽:144日期:2023-02-16 08:34:38

問題描述

現在是這樣,函數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) => {...})}

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

問題解答

回答1:

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

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)回答2:

嘗試一下 ES7 的 async/await ?或者 引入 async.js 庫,前后端通用。

回答3:

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

標簽: JavaScript
主站蜘蛛池模板: 欧美jizzhd精品欧美 | 日本加勒比在线视频 | 久久国产精品一区二区三区 | 久草免费福利视频 | 91碰碰| 三级亚洲 | 美女视频黄a视频免费全过程 | 国产精品三级国语在线看 | 国产一级视频播放 | 亚洲制服丝袜美腿亚洲一区 | 欧美日韩精品一区二区视频在线观看 | 久久精品91 | 国产美女动态免费视频 | 高清一本之道加勒比在线 | 成人在线免费看 | 中国一级特黄剌激爽毛片 | 国产一在线精品一区在线观看 | 黄色影院在线 | 久久免费影院 | 亚洲福利精品一区二区三区 | 久久九九精品一区二区 | 在线步兵区 | 人人99 | 欧美成人亚洲综合精品欧美激情 | 女人张开腿让男人桶视频免费大全 | 二区国产 | 大伊香蕉精品视频在线天堂 | 亚洲精品久久99久久 | 曰本一区 | 一区二区三区国产 | 亚洲国产天堂久久精品网 | 亚洲欧美中文日韩二区一区 | 亚洲欧美一区二区三区在线播放 | 久久.com| 一区二区三区中文 | 最新国产精品亚洲 | 女人成午夜大片7777在线 | 日韩激情无码免费毛片 | 成人合成mv福利视频网站 | 日本在线免费播放 | 国产伦精品一区二区三区四区 |