我需要一些构造回调函数的帮助。问题是:我的逻辑是否按照我的想象进行?

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函数?

最佳答案

那真是太搞笑了。不确定为什么要将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回调的参数。

09-25 22:30