Я считаю, что разделение кода между при использовании обратных вызовов усложняет понимание и поддержку моего кода.
Как вы решаете проблему?
Вот несколько решений, которые я нашелс использованием, в качестве примера, асинхронных вызовов веб-службы.Пожалуйста, дайте мне знать, что вы думаете, и и плюсы и минусы, которые происходят с вами.
через замыкания:
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);
}
}