处理嵌套的回调函数

时间:2014-08-08 18:37:53

标签: javascript node.js asynccallback

我需要一些帮助构建我的函数w /回调。问题:我的逻辑是否表现我的想象?

app = getApp(function(val1, val2){
    helperFunction(val3, function(val4, val5, callbackTwo){
       //...logic
       var val6 = ....
       callbackTwo(val6)
    },
    function(val6){
        //logic
    });
};

function helperFunction(val3, callback, callbackTwo){
    //logic
    callback(val4, val5, callbackTwo);
}

基本上它有效。但是,根据我的第一个匿名callback函数的逻辑,我是否有可能在分配callbackTwo之前触发我的val6函数?

1 个答案:

答案 0 :(得分:3)

这非常滑稽。不确定为什么要将callback2传入/传出helperFunction,因为它不会任何事情。相反,只需在原始回调中直接调用第二个回调代码。除非你能给我们一个理由(没有明显的理由),只需将这个逻辑放在你的第一个回调中。

我尽我所能清理了它,但你没有给我们真正的,语法上有效的JavaScript来处理:

App = getApp(function(val1, val2) {
  helperFunction(val3, function(val4, val5) {
    //...logic
    var val6 = ....
    //logic that uses val6, originally from callback2
  });
};

function helperFunction(val3, callback){
  //logic
  callback(val4, val5);
}

请注意,“使用val6的逻辑”只能是另一个函数调用,但没有理由将该函数作为helperFunction回调的参数。