【发布时间】:2015-04-29 20:55:29
【问题描述】:
控制器 A 通过 Promise 发送请求。在另一个控制器 B 中同时运行回调函数的最佳方法是什么?在原始回调中通过服务广播并在另一个控制器中监听它。是否有可能将承诺传递给控制器 B?
选项 1:
// 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
选项 2:
// 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的问题是回调函数会被执行多次。我不想共享数据,而是执行回调。
【问题讨论】:
标签: angularjs promise angular-promise