究竟回调如何获得他们的论点?

时间:2017-10-25 11:23:00

标签: javascript asynchronous callback parameter-passing

我无法理解JavaScript中的回调如何获得他们的参数。或者换句话说:如何实现更高阶的函数,使其回调接受标准的errdata参数。

与回调示例中的in this article on asynchronous JavaScript一样,通常使用(我知道这是常见的,因为我看到Node.js中使用的模式正是moongose(即{{3 }})):

function getData(options, callback) { 
    $.get("example.php", options, function(response) { 
        callback(null, JSON.parse(response)); 
    }, function() { 
        callback(new Error("AJAX request failed!")); 
    }); 
} 

// usage 
getData({name: "John"}, function(err, data) { 
    if(err) { 
        console.log("Error! " + err.toString()) 
    } else { 
        console.log(data); 
    } 
});

回调如何得到参数err& data基于getData()函数如何在上面声明?

1 个答案:

答案 0 :(得分:4)

调用该函数时,会将参数传递给函数。

function foo(arg) {
    console.log(arg);
}

foo("This is the value");

当它是回调函数时仍然如此。

function foo(arg) {
    console.log(arg);
}

function bar(callback) {
    callback("This is the value");
}

bar(foo);

当回调函数由其他人编写的代码调用时,它仍然是正确的,该代码存在于库中,而您没有检查源代码。