Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 简化嵌套回调_Javascript_Callback - Fatal编程技术网

Javascript 简化嵌套回调

Javascript 简化嵌套回调,javascript,callback,Javascript,Callback,我使用callback1从func1获取结果的代码如下。但是func1正在将func2与callback2一起使用,然后依赖于第二次回调返回result,或者使用func3与callback3一起获得结果。不确定在何处放置另一个回调以获取一个结果 module1.func1(arg1, function (callback1) { module1.func2(arg2, function (callback2) { if (result2) result = result

我使用
callback1
func1
获取
结果的代码如下。但是
func1
正在将
func2
callback2
一起使用,然后依赖于第二次回调返回
result
,或者使用
func3
callback3
一起获得
结果。不确定在何处放置另一个回调以获取一个
结果

module1.func1(arg1, function (callback1) {
    module1.func2(arg2, function (callback2) {
        if (result2) result = result2;
        else
        module2.func3 (arg3, function (callback3) {
            result = result3;
        })
    })
});
如果我向
func3
添加另一个回调,则只有在我没有立即从
func2
获得结果的情况下,它才会起作用。也许这就是我所需要的,图案对我来说太复杂了

module.exports = function (callback) {
    module1.func1(arg1, function (callback1) {
        module1.func2(arg2, function (callback2) {
            if (result2) result = result2;
            else
                module2.func3 (arg3, function (callback3) {
                    result = result3;
                    callback(result) //???
                })
        })
    });
};

在最近的JavaScript版本中,可以通过Promiss解决嵌套回调地狱问题。网络上的许多资源之一是

Promiss在ES6中可用,但也有几个库。我希望这能让你知道该找什么