2
我們正在研究Windows 8 JavaScript應用程序並創建了執行所需操作的所有必要框架。該框架無處不在使用jQuery代碼。使用winjs.promise實現.done()。fail()方法
現在,我們必須在後臺任務中使用相同的框架,但事實證明後臺任務不支持jquery,因爲它沒有有效的窗口對象。
因爲我們只使用jQuery的幾個方法,所以我們決定封裝一個封裝類,它將在後臺任務中用作jQuery。
我們被困在使用winJs.promise實現jQuery的延期功能。問題是,在jQuery中,我們使用.done()。fail()來處理解析和拒絕,而在winjs.promise中,.done()最後在方法隊列中實現,並且沒有失敗方法。
我們嘗試實現失敗方法,但無法實現.done()。fail()。
任何人都可以提供任何建議我們如何在包裝類中使用winjs.promise來實現它?
var $ = (function() {
function $() {
}
$.deferred = function() {
// implement deferred using WinJs.Promise
}
然後,在框架使用此這樣的:
function divide(num1, num2) {
var deferred = $.deferred();
if (num2 > 0) {
return deferred.resolve(num1/num2);
}
else {
return deferred.reject("num2 can't be zero");
}
}
divide(1, 2).done(function (value) {
console.log('Anser is:' + value);
}).fail(function (value) {
console.log('Error: ' + value);
});