控制器A通过promise发送请求。在另一个控制器B中同时运行回调函数的最佳方法是什么?通过原始回调中的服务进行广播,并在另一个控制器中进行侦听。是否有可能将承诺传递给控制器B?
// controller A
service.doAjax().then( function( data ) {
// controller A callback
// should I broadcast "data" and listen for the event in controller B ?
} );
// controller B
$rootScope.$on();
// ... listen for the event sent from controller A to get "data
// controller A
var promise = service.doAjax();
shareService.sharePromise( promise ); // Sharing the promise with broadcast
// controller B
// get promise from shareService via $on()
promise.then( function( data) {} );
选项2的问题是回调函数将被执行多次。我不想共享数据,而是执行回调。