
编辑:
最近对此表示赞同,我不得不说我不再这样做。
$.ajax返回a,
promise因此您可以直接使用promise以更一致和更可靠的方式执行我在这里所做的几乎所有工作。
function customRequest(u,d) { var promise = $.ajax({ type: 'post', data: d, url: u }) .done(function (responseData, status, xhr) { // preconfigured logic for success }) .fail(function (xhr, status, err) { //predetermined logic for unsuccessful request }); return promise;}然后用法如下:
// using `done` which will add the callback to the stack // to be run when the promise is resolvedcustomRequest('whatever.php', {'somekey': 'somevalue'}).done(function (data) { var n = 1, m = 2; alert(m + n + data);});// using fail which will add the callback to the stack // to be run when the promise is rejectedcustomRequest('whatever.php', {'somekey': 'somevalue'}).fail(function (xhr, status, err) { console.log(status, err);});// using then which will add callabcks to the // success AND failure stacks respectively when // the request is resolved/rejectedcustomRequest('whatever.php', {'somekey': 'somevalue'}).then( function (data) { var n = 1, m = 2; alert(m + n + data); }, function (xhr, status, err) { console.log(status, err); });当然,我一直都这样做。您可以在实际的成功Callack中执行回调,也可以将回调分配为成功回调:
function customRequest(u,d,callback) { $.ajax({ type: "post", url: u, data:d, success: function(data) { console.log(data); // predefined logic if any if(typeof callback == 'function') {callback(data); } } });}用法如下所示:
customRequest('whatever.php', {'somekey': 'somevalue'}, function (data) { var n = 1, m = 2; alert(m + n + data);});欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)