我發現使用回調之間的代碼分離使得我的代碼難以理解和維護。javascript中的異步回調的結構:同步異步
你是如何處理這個問題的?
下面是我提出的幾個解決方案,使用它作爲一個例外的異步Web服務調用。請讓我知道你的想法,以及發生在你身上的優點或缺點。
通過關閉:
sayHelloWithClosures: function()
{
//Do something first
// The following call's signature is: ServiceName(SuccessCallback, FailureCallback);
TestBasicWebServices.SL.WebService1.HelloWorld(
function (result)
{
//Do something next
alert(result);
},
function (error)
{
//Do Exception
alert(error._message);
});
}
通過遞歸
:
sayHello: function (result)
{
if (result == undefined)
{
//Do something first
// The following call's signature is: ServiceName(SuccessCallback, FailureCallback);
TestBasicWebServices.SL.WebService1.HelloWorld(this.sayHello, this.sayHello);
}
else if (typeof (result) == "string")
{
//Do something next
alert(result);
}
else
{
//Do Exception
alert(result._message);
}
}
謝謝!這真的很酷。不幸的是,我不明白它將如何幫助解決上述可讀性問題...... – bnieland