我今天想知道我是否不能簡單地支持回調和承諾。你能想到有什麼缺點嗎?NodeJS承諾與回調:是否有理由不支持兩者?
function fetchUser(data, success, error) {
var deferred = Q.defer();
var body = {
sharedSecret: config['apiSharedSecret'],
deviceAuth: data.deviceAuth,
username: data.username,
phoneNumber: data.phoneNumber
};
request.post({
url: url,
json: body,
}, function (err, httpResponse, body) {
if (err) {
deferred.reject(new Error(err));
if (typeof error === "function") {
error.call(this, err);
}
return;
}
if (typeof success === "function") {
success.call(this, body);
}
deferred.resolve(body);
});
return deferred.promise;
}
只是教育你的用戶接受承諾:-)不再需要回調參數。 – Bergi
請記住promises也是回調,但它們比plain回調有更多的功能和功能,特別是當涉及異步錯誤傳播和管理多個異步操作時。所以,你的問題更像是爲什麼你應該支持回調的形式,如果具有更多功能的回調現在被認爲是一個標準,那麼回調的功能會減少很多。 – jfriend00