用jQuery AJAX和Promission替换synchronous Prototype.js AJAX
我有一个prototype.js同步ajax调用,需要使用prototype将其转换为jQuery ajax调用 这是我的基本出发点用jQuery AJAX和Promission替换synchronous Prototype.js AJAX,jquery,ajax,promise,prototypejs,Jquery,Ajax,Promise,Prototypejs,我有一个prototype.js同步ajax调用,需要使用prototype将其转换为jQuery ajax调用 这是我的基本出发点 // synchronous prototype.js ajax function function isSwitchOn() { var isOn = false; var myAjax = new Ajax.Request('checkSwitch', { method: 'post', asynchronous: fals
// synchronous prototype.js ajax function
function isSwitchOn() {
var isOn = false;
var myAjax = new Ajax.Request('checkSwitch', {
method: 'post', asynchronous: false, evalJSON: 'force', requestHeaders: { Accept: 'application/json' },
onSuccess: function (transport) {
if (isValidResponse(transport)) {
if (transport.responseJSON.result == "switched") {
isOn = true;
}
}
},
onFailure: function (oXHR, oJson) { handleFailure(oXHR.status); },
onException: function (request, err) { handleException(request, err); }
});
return isOn;
}
//calling function snippet
do {
// complex stuff that affects switch status and manages UI
} while (!isSwitchOn());
这是我的转换尝试,但它没有在循环评估之前设置switchStateOn
function handleSwitchResponse(response) {
if (isValidResponse(response)) {
if (response.result == "switched") {
return true;
}
}
return false;
}
function checkSwitch() {
return getJson('checkSwitch')
.then( function (data) { return data; })
.fail( function (oXHR, textStatus, errorThrown) { handleException(oXHR, textStatus + ": " + errorThrown.message); });
}
function getJson(url) {
return jQuery.ajax(url, { method: 'POST', dataType: 'json' });
}
//calling function snippet
var switchStateOn;
do {
// complex stuff that affects switch status and manages UI
checkSwitch().then(function (response) { switchStateOn = handleSwitchResponse(response); });
} while (!switchStateOn);
有人能使用jQuery AJAX和promissions来帮助适当地构建它吗?你不能这样做。你也需要使循环异步。目前,循环本身的迭代有一个内在的顺序。我不知道你说的“使循环也异步”是什么意思。你能详细说明吗?你不能那样做。你也需要使循环异步。目前,循环本身的迭代有一个内在的顺序。我不知道你说的“使循环也异步”是什么意思。你能详细说明一下吗?