我有一個方法,做的請求到服務器的服務:
this.add = function (data, cb) {
$http({
method: 'POST',
url: path
}).then(function successCallback(response) {
cb(response);
}, function errorCallback(response) {
// TODO
});
};
當我打電話add()
爲:
genresService.add(function (data) {
// TODO
});
我得到錯誤:
TypeError: cb is not a function
at successCallback (custom.js:329)
在線:
cb(response);
您將回傳作爲唯一參數傳遞,但您的函數需要兩個參數。 –
相反,您應該從'this.add'函數中使用'return promise'。這樣,你可以通過使用'.then'通過函數調用鏈接承諾來使你的函數調用可擴展。 –
如上所述,應該使用承諾來代替。在基於承諾的代碼中使用回調是反模式。 – estus