javascript - 有一个异步获取数据的函数A,其他依赖这个A得到的数据的函数是否都必须是异步的?
本文介绍了javascript - 有一个异步获取数据的函数A,其他依赖这个A得到的数据的函数是否都必须是异步的?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
现在是这样,函数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) => {...})
}
其中有一些递归循环依赖,复杂度增加后我感觉我要疯了,有没有其他好点的写法啊?
解决方案
可以用点函数式编程的写法:
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)
这篇关于javascript - 有一个异步获取数据的函数A,其他依赖这个A得到的数据的函数是否都必须是异步的?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文