2010-09-10 64 views
1

我用这个函数在JavaScript调用Web服务(WCF):如何将参数传递给包含Web服务结果的JavaScript函数?

function Do(caller) 
{ 
    MyService.GetClient(some_id, CallBackGetClient); 
} 

function CallBackGetClient(WebServiceResult) 
{ 
    var result = WebServiceResult; 
    etc. 
} 

现在我想通过参数(主叫)以CallBackGetClient功能,这样我就可以让dictinction谁被称为DO()函数。如何传递参数?

回答

2

你可以把它放在一个匿名函数中,为此你可以使用与预期回调相同的函数签名。

function Do(caller) 
{ 
    MyService.GetClient(some_id, function(webServiceResult) { 
     CallBackGetClient(webServiceResult, caller); 
    }); 
} 

在这里,您传递一个匿名函数作为回调函数GetClient。该函数将以期望的Web服务结果作为参数,但在该函数内部,您正在转向并调用 CallBackGetClient,并将caller作为第二个参数。这是有效的,因为caller被“困住”在匿名函数的范围内,所以它仍然可用。

这就是Javascript的最好的东西。

+0

那么如何在CallBackGetClient中获得这两个? – jlp 2010-09-10 14:49:15

+0

不确定你在问什么。 – 2010-09-10 14:53:37

+0

CallBackGetClient将如下所示:CallBackGetClient(WebServiceResult,caller)然后呢? – jlp 2010-09-10 14:57:55

相关问题