Callback()节点Js

stu*_*r24 6 javascript mongodb node.js angularjs

我对这个程序很困惑.我在Brad Dayley那里买了一本名为"Node JS,MongoDB和AngularJS Web开发"的书.我找到了一个程序来演示一个叫做闭包的东西,并以此程序为例.这只是该计划的第一部分.

function logCar(logMsg, callback){
    process.nextTick(function(){
        callback(logMsg);
    });
}

var cars = ["Ferrari", "Porsche", "Bugatti"];

for(var idx in cars){
    var message = "Saw a " + cars[idx];
    logCar(message, function(){
        console.log("Normal Callback: " + message);
    })
}
Run Code Online (Sandbox Code Playgroud)

我一直试图弄清楚这个程序如何运作整整一个小时,但我无法弄清楚回调的功能(logMsg).

我知道这可能是一个非常基本的问题,但我无法绕过它.

Bid*_*han 2

回调是您传递给 logCar() 的任何函数。当 logCar 完成它应该做的事情时,它将调用回调函数。在 for 循环中,您可以像这样调用 logCar() 。

logCar(message, function(){
    console.log("Normal Callback: " + message);
})
Run Code Online (Sandbox Code Playgroud)

这里, function() {..} 是回调函数,一旦 logCar 执行完毕就会调用它。在这种情况下,您提供的回调函数将console.log作为第一个参数传递的消息。您可以传递另一个函数来执行不同的操作作为回调。