2010-09-10 7 views
1

J'utilise cette fonction javascript pour appeler le service Web (WCF):Comment passer un paramètre à une fonction javascript contenant des résultats de service Web?

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

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

Maintenant, je veux passer le paramètre (appelant) à la fonction CallBackGetClient je peux faire dictinction qui a appelé la fonction Do(). Comment passer un paramètre?

Répondre

2

Vous pouvez le mettre dans une fonction anonyme, pour laquelle vous utilisez la même signature de fonction que le rappel attendu.

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

Ici vous passez une fonction anonyme à GetClient comme le rappel. Cette fonction utilisera le résultat du service Web attendu comme argument, mais à l'intérieur de cette fonction, vous inversez et appelez le réelCallBackGetClient, en ajoutant caller comme deuxième argument. Cela fonctionne parce que caller est "piégé" dans la portée de la fonction anonyme, donc c'est toujours utilisable.

Et voici la meilleure chose à propos de Javascript.

+0

Comment alors obtenir les deux deux dans CallBackGetClient? – jlp

+0

Vous ne savez pas ce que vous demandez. –

+0

CallBackGetClient ressemblera à ceci: CallBackGetClient (WebServiceResult, caller) then? – jlp

Questions connexes