@@ -104,21 +104,24 @@ define(function(require) {
104
104
* rejects if an error occurs.
105
105
*/
106
106
function parseIncoming ( source , eventName , targetProxy , connect , options , wire , createConnection ) {
107
- var promise , methodName ;
107
+ var promise , methodName , methodNames ;
108
108
109
109
if ( eventName ) {
110
110
// 'component.eventName': 'methodName'
111
111
// 'component.eventName': 'transform | methodName'
112
112
113
113
methodName = options ;
114
+ methodNames = Array . isArray ( options ) ? options : [ options ] ;
114
115
115
- promise = pipeline ( targetProxy , methodName , wire ) . then (
116
- function ( func ) {
117
- var invoker = proxyInvoker ( targetProxy , func ) ;
116
+ promise = when . map ( methodNames , function ( methodName ) {
117
+ return pipeline ( targetProxy , methodName , wire ) . then (
118
+ function ( func ) {
119
+ var invoker = proxyInvoker ( targetProxy , func ) ;
118
120
119
- return createConnection ( source , eventName , invoker ) ;
120
- }
121
- ) ;
121
+ return createConnection ( source , eventName , invoker ) ;
122
+ }
123
+ ) ;
124
+ } ) ;
122
125
123
126
} else {
124
127
// componentName: {
@@ -190,10 +193,6 @@ define(function(require) {
190
193
promise = connectOneOutgoing ( targetProxy , options ) ;
191
194
192
195
} else {
193
- // eventName: {
194
- // componentName: 'methodName'
195
- // componentName: 'transform | methodName'
196
- // }
197
196
promises = [ ] ;
198
197
199
198
resolveAndConnectOneOutgoing = function ( targetRef , targetMethodSpec ) {
@@ -202,8 +201,20 @@ define(function(require) {
202
201
} ) ;
203
202
} ;
204
203
205
- for ( name in options ) {
206
- promises . push ( resolveAndConnectOneOutgoing ( name , options [ name ] ) ) ;
204
+ if ( Array . isArray ( options ) ) {
205
+ // eventName: [ 'methodName1', 'methodName2' ]
206
+ for ( var i = 0 , t = options . length ; i < t ; i ++ ) {
207
+ promises . push ( connectOneOutgoing ( targetProxy , options [ i ] ) ) ;
208
+ }
209
+
210
+ } else {
211
+ // eventName: {
212
+ // componentName: 'methodName'
213
+ // componentName: 'transform | methodName'
214
+ // }
215
+ for ( name in options ) {
216
+ promises . push ( resolveAndConnectOneOutgoing ( name , options [ name ] ) ) ;
217
+ }
207
218
}
208
219
209
220
promise = when . all ( promises ) ;
0 commit comments