javascript回调函数领先

标签 javascript node.js

伙计们,我有以下 for 循环,在其中我从另一个模块调用 vehicles.alertsVid 函数,它返回每辆车的状态。结果确实到达了,但是稍后,并且没有正确添加。

正确的写法是什么,这样主 for 循环不会提前,temp.status 会及时写入? :)

for (var i = vehiclesStuff.length - 1; i >= 0; i--) {
var temp = {};
temp.name = vehiclesStuff[i].nickname.S;
temp.plate = vehiclesStuff[i].plate.S;
temp.base = vehiclesStuff[i].base.S;
temp.vin = vehiclesStuff[i].vin.S;
temp.vid = vehiclesStuff[i].vid.S;

var myfunc = function(t,results,done){return function(){
    console.log ("ALERTS",results);
    t.status = results.toString();
    done();
}};

vehicles.alertsVid(temp.vid, myfunc(temp));

vehicleArray.push(temp);
};
callback()

最佳答案

for (var i = vehiclesStuff.length - 1; i >= 0; i--) {
    var temp = {}
    temp.name = vehiclesStuff[i].nickname.S;
    temp.plate = vehiclesStuff[i].plate.S;

    var myfunc=function(t,results,done){return function(){
        console.log ("ALERTS",results);
        t.status = results.toString();
        done();
    }};


    vehicles.alertsVid(temp.vid, myfunc(temp,results, done));

    vehicleArray.push(temp);
};

当您调用内部函数时,变量在调用时绑定(bind)到调用堆栈。因此回调函数不会“抢先”。

请注意,该函数返回一个函数本身,因此是双重嵌套。我的签名之一。 =)

关于javascript回调函数领先,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21224190/

相关文章:

javascript - 如何使用 this 关键字从方法访问类属性

javascript - 如何更改 IE 中的 cssText?

javascript - CSS和Javascript之间的顺序是什么

javascript - 这在全局范围内

javascript - src/js 和 build/js 目录在哪里?

javascript - 在 React 应用程序中导入 mongoose npm 模块时出现 TypeError

javascript - 文件的 JavaScript 中的快速低冲突非加密哈希

c# - 使用非美国日期格式时,JsonConvert.DeserializeObject 无法将字符串转换为 DateTime

node.js - Electron 原生插件在Windows上失败

javascript - 如何仅通过一个 Jest 配置文件/设置使用多个 Jest 预设?