为了账号安全,请及时绑定邮箱和手机立即绑定

有一个异步获取数据的函数A,其他依赖这个A得到的数据的函数是否都必须是异步的?

有一个异步获取数据的函数A,其他依赖这个A得到的数据的函数是否都必须是异步的?

温温酱 2018-11-15 14:11:16
现在是这样,函数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)


查看完整回答
反对 回复 2018-12-15
  • 1 回答
  • 0 关注
  • 431 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号