javascript - 处理嵌套回调函数

标签 javascript node.js asynccallback

我需要一些帮助来构建我的回调函数。问题:我的逻辑是否符合我的想象?

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 回调的参数。

关于javascript - 处理嵌套回调函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25210133/

相关文章:

node.js - 我怎样才能在 Jade(哈巴狗)中做到这一点?

javascript - 在ajax回调函数javascript中乱序执行

javascript - 如何将数组中的所有数字转换为相应的月份?

javascript - Amcharts 类别轴标签重叠

javascript - 如何向此 JavaScript 添加另一个条件?

javascript - 在 React 中嵌套三个组件

node.js - 使用 NodeJS(带有 Typescript)流和 aes-gcm 算法时出现不支持的状态或无法验证数据错误

node.js - Node.js中如何在当前目录下创建目录

C# Socket.Receive 消息长度