处理嵌套回调函数

handling nested callback functions

本文关键字:函数 回调 嵌套 处理      更新时间:2023-09-26

我需要一些帮助构建我的函数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函数的逻辑,是否有机会在分配val6之前触发我的callbackTwo函数?

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