【问题标题】:handling nested callback functions处理嵌套回调函数
【发布时间】:2014-08-09 02:48:06
【问题描述】:

我需要一些帮助来构建带有回调的函数。问题:我的逻辑是否按照我的想象执行?

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 之前被触发?

【问题讨论】:

  • 嗯。这是用来做什么的?我不禁想知道是否有更清晰的方式来表达它:-)

标签: javascript node.js asynccallback


【解决方案1】:

这太搞笑了。不知道你为什么将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 回调的参数。

【讨论】: