[英]How can I build jQuery like events?
我想構建一個 function 根據結果調用一些事件處理程序,就像 jQuery 的$.ajax()
一樣。 例如,您可以定義此 ajax 代碼:
$.ajax(
{
url: "http://domainname.tld",
type: 'GET'
}).done(function(e)
{
//succed
}).fail(function(e)
{
//error
});
我想得到這些:
.done(function(e)
{
//succed
}
塊與我的 function 一起工作。 目前我做這樣的事情:
function SendRequest(arg1, arg2, onSuccess, onError)
{
if(true)
{
onSuccess(true);
}
else
{
onError(false);
}
}
並且必須這樣稱呼它
SendRequest("someArg1", "someArg2", function(returnValue) { alert(returnValue); }, function(returnValue) { alert(returnValue); });
並想這樣稱呼它:
SendRequest("someArg1", "someArg2")
.onSuccess(
function(returnValue)
{
alert(returnValue);
})
.onError(function(returnValue)
{
alert(returnValue);
});
感謝@arun-p-johny和@hindmost為我提供了正確的關鍵字進行搜索並最終解決了我的問題
在閱讀了這篇很棒的文章后,我想出了以下解決方案:
function AsyncMethod(arg1, arg2)
{
var deferred = $.Deferred();
//Do your work
if(arg1 == arg2)
{
// true represents the result, optional
deferred.resolve(true);
}else{
// Something went wrong, reject. (false is still the result, therefor it's also optional)
deferred.reject(false);
}
return deferred.promise();
}
並這樣稱呼它:
$.when(
AsyncMethod(true, false)
.done(function (returnValue)
{
alert(arg1 + " == " + arg2);
})
.fail(function (returnValue)
{
alert(arg1 + " != " + arg2);
});
);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.