我在javascript中使用此函数来调用Web服务(WCF):
function Do(caller)
{
MyService.GetClient(some_id, CallBackGetClient);
}
function CallBackGetClient(WebServiceResult)
{
var result = WebServiceResult;
etc.
}
现在我想将参数(调用者)传递给CallBackGetClient函数,这样我就可以让dictinction调用Do()函数。如何传递参数?
答案 0 :(得分:2)
您可以将其置于匿名函数中,您可以使用与预期回调相同的函数签名。
function Do(caller)
{
MyService.GetClient(some_id, function(webServiceResult) {
CallBackGetClient(webServiceResult, caller);
});
}
在这里,您将匿名函数作为回调传递给GetClient
。该函数将预期的Web服务结果作为其参数,但在该函数内,您正在转向并调用 real CallBackGetClient
,并添加caller
作为第二个参数。这是有效的,因为caller
被“捕获”在匿名函数的范围内,因此它仍然可用。
这就是关于Javascript的最好的事情。