2010-07-10 5 views
0

У меня есть функция fooA (valueA1, valueA2), которая вызывает веб-метод myWSA(). После получения результата он вызывает обработчик результата, который inturn вызывает другую веб-службу myWSB (значение2). Я хочу знать, как я могу передать/получить это значение2 в foo2. Эти значения: значение1 и значение2 зависят от нажатой кнопки.Передача параметров между функциями и обработчиками результатов

private function fooA(valueA1:int, valueA2:int){ 
    callResponder.token = myWSA(valueA1); 
} 

private function myWSA_resultHandler(event:ResultEvent) { 
    myWSB(value2); //----------> I want to use the parameter, value2, passed in fooA here. 

} 


<fx:Declarations> 
<s:WebService id = "myWebService" 
         wsdl = "http://MyWebService?wsdl" 
         fault="Alert.show(event.fault.faultString + '\n' + event.fault.faultDetail)"> 
      <s:operation name = "myWSA" 
         result= "myWSA_resultHandler(event)"/> 

</s:WebService> 
<s:CallResponder id = "callResponder" /> 
</fx:Declarations> 

<s:Button id = "button1" 
      label="Button1" 
     click = "fooA(val1, val2)"/> 
<s:Button id = "button2" 
      label="Button2" 
     click = "fooA(val3, val4)"/> 
+0

Что вы подразумеваете под foo2? это не в вашем коде, поэтому трудно следить за тем, что вы ищете. Что вы хотите делать с value2, почему вы не можете просто использовать его в методе resultHandler? Я не понимаю, в чем твоя проблема. Просьба уточнить, и я постараюсь помочь. – gMale

ответ

0

Вы не можете получить доступ к аргументу из одного метода внутри другого метода. Вернитесь к источнику и получите доступ к исходному значению.

Если вы можете предположить, что Val1 и val2 не будут меняться между началом первого вызова и вторым вызовом, просто обращайтесь к ним, используя this.val1.

Если вы хотите предположить, что значения могут меняться или быть конкретными по вызову, тогда вы захотите сохранить значения во время первого вызова, в предположении, что они могут измениться, вам нужно будет написать механизм отслеживания текущих вызовов и их соответствующих связанных свойств.

Я сомневаюсь, что вы пытаетесь выполнить. Разве не было бы лучше обернуть веб-сервис 1 и веб-сервис 2 в один и тот же звонок?

+0

Мне нужно позвонить в веб-службу 2, только когда получен результат веб-службы 1, и, таким образом, я вызываю веб-службу 2 в обработчике результатов веб-службы1. Это мешает мне обернуть веб-службу 1 и веб-службу 2 одним и тем же вызовом, если нет способа, которым мне не хватает. –

+0

Я не понимаю, почему вам нужно позвонить в веб-службу 2 после веб-службы 1, тем более, что вы не описали взаимодействие клиента между этими двумя действиями. Youv'e не описал причин, почему вы не можете объединить эти две вещи вместе на сервере. – JeffryHouser

+0

WebService 1 должен записывать на сервер, а WebService 2 - читать с сервера. Только когда запись выполнена, я хочу вызвать чтение, для которого я использую событие результата WebService 1 для вызова Web-сервиса 2. –

Смежные вопросы