1
使用Promise.resolve($.ajax(options))
如上所述http://bluebirdjs.com/docs/api/promise.resolve.html不起作用。BluebirdJS承諾jQuery不能正常工作
var $ = require('jquery');
var Promise = require('bluebird');
function makeRequest(options) {
return Promise.resolve($.ajax(options))
.then(function(data) { return data; },
function (error) { return error; });
}
當我打電話和網址(在這種情況下,403)返回一個錯誤,我添加一個「然後」,它總是調用完成處理程序。
makeRequest(options).then(iAmBeingCalledWhenTheRequestFails, iAmNotBeingCalled);
「當你返回一個異常處理程序,你從錯誤中恢復(如try catch)」。非常感謝,我認爲我錯過了諾言(這是你認爲你知道的事情之一,但實際上卻沒有)。 –
@WalterMacambira沒關係--jQuery非常有名[錯過了自己的諾言](https://gist.github.com/domenic/3889970)。 –
對於拋出錯誤只是爲了拋出錯誤而不是壞的表現? –