0
我想輪詢一個數據庫的輪詢函數工作的幾列的值。不過,我希望能夠使用延遲來讓調用輪詢函數的函數知道它何時完成。使用我有什麼下面我得到或者是沒有方法,「解析」或有沒有方法「承諾」的錯誤與jQuery推遲投票
//how I call the poll function
poll(Guids.Creation,$.Deferred);
var poll = function (guid,defer) {
var timeOut = 3000,
url = 'handler.ashx',
data = {
cmd : 4 ,guid : guid
};
App.Generic.ajax(url,"GET", this, data).done(function (data) {
var orderStatusJSON = $.parseJSON(data);
if (orderStatusJSON.hasOwnProperty('dateFinished') && orderStatusJSON.dateFinished === '') {
setTimeout(function(){poll(guid,defer)}, 3000);
} else {
if (orderStatusJSON.hasOwnProperty('output')) {
var successRegEx = /\bsuccess\b/i,
errorRegEx = /\berror\\b/i;
if(successRegEx.test(orderStatusJSON.output)) {
defer.resolve(orderStatusJSON);
} else if (errorRegEx.test(orderStatusJSON.output)) {
defer.resolve(orderStatusJSON);
} else {
defer.resolve(orderStatusJSON); //execute statement
}
}
}
});
return defer.promise();
};
是$ .Deferred變量設置爲具有方法「resolve」和「promise」的對象的實例嗎? – sjkm
我明白你的意思我需要$ .Deferred()不是$ .Deferred – Timigen