2011-02-02 2 views
0

Я делаю несколько подобных вызовов с похожими результатами для одного удаленного объекта. Поскольку эти вызовы настолько похожи и очень изменчивы, я сохраняю имя удаленного метода в файле конфигурации, и когда мне нужно сделать вызов, я использую getOperation() на удаленном объекте и вызываю send() на объект операции. Однако требования изменились, так что не все вызовы будут иметь одинаковое количество параметров.Могу ли я передать массив функции, используя конструкцию ... rest *?

Поскольку send использует ..., смогу ли я продолжать использовать ту же формулу и передать массив, или отправит() обрабатывать это как передачу одного аргумента массива типов?

+1

в качестве побочного сведению, и, возможно, это поможет прояснить путаницу: если путь вы отведенный ваши операции RO причиняет проблемы, потому что ваш operation.send() вызов передача одного массива в качестве единственного аргумента, загляните в Function.apply(). Итак, в вашем примере, где вы хотите разбить свой массив аргументов на вызов send(), вы бы сделали что-то вроде: (operation.send as Function) .apply (targetThis, arrayOfArgs). Это разрушит ваши аргументы, если вы обнаружите, что отправляете один объект массива в свою удаленную подпись метода. Надеюсь, что помогает. Удачи. –

ответ

1

Класс Operation также имеет свойство «arguments», которое вы можете использовать. Таким образом, вы можете предварительно заполнить его перед вызовом send(). Метод send() не требует дополнительных аргументов.

var operation:Operation = Operation(remoteObject.getOperation(methodName)); 
operation.arguments = parameters; 

var token:AsyncToken = operation.send(); 
var responder:Responder = new Responder(resultHandler, faultHandler); 
token.addResponder(responder); 
0

вы можете использовать ... остальное

, который даст вам массив с кучей объектов. Я бы порекомендовал вам сделать первый элемент [0] всегда ID. Этот идентификатор должен идентифицировать либо отправителя, либо тип передаваемого объекта. вы можете легко сделать переключатель/футляр для каждого типа элемента. Вы могли бы также сделать более сложный способ справиться с этим, но это должно сработать.

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