我在看一個Node.js代碼示例,它使用「if(err){// code //);」語句來控制其功能的輸出 - 但是當函數被調用時,我看不到任何東西被傳遞給它們,就好像「err」參數是由隱藏的代碼在幕後定義的那樣...Javascript「err」函數參數 - 它是如何工作的?
下面的代碼是異步的,並且使用來自SDK的外部模塊,應該注意。
/* "client.sendEvent" sends the data contained within the variable "message"
to its destination, when this is complete the callback function "printResultFor"
is called and a string is passed to that */
client.sendEvent(message, printResultFor('Message'));
//printResultFor looks like this:
var printResultFor = function (op) {
return function printResult(err, res) {
if (err) console.log(op + ' error: ' + err.toString());
if (res) {
console.log(op + ' status: ' + res.constructor.name);
};
};
}
我的問題是:
- 爲什麼這個回調函數需要返回一個嵌套函數?
和
- 如何的 「ERR」 和 「RES」 的值傳遞給該嵌套函數?
我也想知道答案就在於外部模塊中,但我不知道......
(最後請注意:我是一個自學成才的新手使用JavaScript和節點,我敢肯定,這是微不足道的大多數人,但謝謝你的任何解釋和幫助,您可以提供。)
'''addEventListener()'中的'Event'對象被提供給回調的相同方式。 – Marty