现在是这样,函数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 回答

慕侠2389804
TA贡献1719条经验 获得超6个赞
可以用点函数式编程的写法:
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)
添加回答
举报
0/150
提交
取消