有一个异步获取数据的函数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) => {...})

}

其中有一些递归循环依赖,复杂度增加后我感觉我要疯了,有没有其他好点的写法啊?

温温酱
浏览 432回答 1
1回答

慕侠2389804

可以用点函数式编程的写法: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)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript