2010-09-10 63 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

相關問題