我正在學習node.js,並獲得了有關異步非阻塞I/O的大部分基礎知識。我的問題是,當函數本身不是異步的時候,用回調函數創建一個函數有什麼意義。即使你正在創建的函數調用了一個異步函數,我也找不到你使用回調的原因。我在我看到的node.js代碼中看到了很多。node.js中不必要的回調用法?
例如,發送HTTP請求,並返回請求的所解析的輸出的函數:
function withCallback(url, callback) {
request(url, function(err, response, html) {
if (err)
callback(err, null);
callback(null, JSON.parse(html));
});
}
function withoutCallback(url) {
request(url, function(err, response, html) {
if (err)
throw err;
return JSON.parse(html);
});
}
與回調的第一函數通過回調返回結果,而第二功能,則返回正常。
大部分原因是因爲第二個不起作用。 – Pointy
無法捕獲第二個函數的返回值,因此數據丟失。 – Hawkings
@MaxMastalerz它根本無法工作。 – Pointy