久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

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

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

問題描述

現(xiàn)在是這樣,函數(shù)a是Promise異步返回?cái)?shù)據(jù),其他很多函數(shù)需要用到這個(gè)數(shù)據(jù),我現(xiàn)在是每個(gè)依賴這個(gè)數(shù)據(jù)的函數(shù)都要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) => {...})}

其中有一些遞歸循環(huán)依賴,復(fù)雜度增加后我感覺我要瘋了,有沒有其他好點(diǎn)的寫法?。?/p>

問題解答

回答1:

可以用點(diǎn)函數(shù)式編程的寫法:

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 庫(kù),前后端通用。

回答3:

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

標(biāo)簽: JavaScript
主站蜘蛛池模板: 亚洲永久免费视频 | 国产一区二区三区久久久 | 伊人电影综合网 | 天天干 夜夜操 | 欧美国产高清 | 国产欧美精品一区aⅴ影院 毛片视频网站 | 香蕉夜色 | 亚洲一区二区免费在线观看 | 国产伦精品一区二区三区四区视频 | 91精品国产91久久久久久蜜臀 | www.国产一区| 精品国产一区二区三区在线观看 | 午夜精品久久久久久久星辰影院 | 亚洲成人在线视频播放 | 天天爽夜夜爽夜夜爽精品视频 | 午夜免费剧场 | 特黄一级| 国产精品高潮呻吟久久av野狼 | www亚洲成人 | 国产乱码精品一区二区三区忘忧草 | 欧美激情在线精品一区二区三区 | 国产精品成人一区二区三区夜夜夜 | 黄色片网站 | 日韩av免费在线观看 | 国产高清毛片 | 免费精品 | 性视频网站免费 | 久久99精品一区二区三区三区 | 亚洲精品一区在线观看 | 狠狠操电影 | 国产精精品| 欧美精品日韩 | 91久久国产精品 | 日日夜夜精品网站 | 亚洲国产精品久久久久婷婷老年 | 欧美国产精品一区 | 亚洲一区在线免费观看 | 91伊人| 亚洲日本韩国欧美 | 日韩在线区 | 国产精品久久久久久久久免费桃花 |