0
我特別想promisify model.fetch方法,所以當我創建模式,我promisifying骨幹藍鳥PromisifyAll的骨幹不解決
function (_, Backbone, Promise) {
Backbone = Promise.promisifyAll(Backbone);
var Diagram = Backbone.Model.extend({...});
}
但後來我試圖使用fetchAsync,我圖模型沒有任何反應。
diagram.fetchAsync()
.then(function() {
console.log('success');
},
function() {
console.log('err');
})
.catch(function() {
console.error('fetch failed');
});
在控制檯這個承諾看起來像這樣
_bitField: 0
_fulfillmentHandler0: undefined
_promise0: undefined
_receiver0: undefined
_rejectionHandler0: undefined
__proto__: Object
我認爲fetchAsync調用的同步和Ajax調用沒有在這個承諾返回決心非promisifyed版本。如果我寫了一些愚蠢的東西,我對承諾很陌生,所以很抱歉。
在Promisifying主幹上,我發現在google中只有很少的信息,只有npm上的幾個包,但我不想包含額外的包,特別是如果它們不受歡迎。
'fetch'已經返回骨幹承諾,無需promisify它。 –
此外,'promisify'只適用於具有節點函數約定的函數, –
thx @BenjaminGruenbaum你是對的!我發現我需要在Bluebird.resolve()中包裝jqXHR諾言,之後我可以將它用作藍鳥諾言。 – Alexander