$scope.$on("stopSpinner", function() {
$('body').mask('hide');
});
上面的代码适用于当stopSPinner收到事件时,它会执行。但我的要求更少涉及。我想在执行函数之前等待两个不同的事件。事件顺序可能不同,但我希望只在两个事件都发生后才执行。怎么能实现这个目标
答案 0 :(得分:1)
使用$ q.all和promises,如下所示:
var deferred1 = $q.defer();
$scope.$on("stopSpinner", function()
{
$('body').mask('hide');
deferred1.resolve();
});
var deferred2 = $q.defer();
$scope.$on("event2", function()
{
$('body').mask('hide');
deferred2.resolve();
});
$q.all([deferred1, deferred2]).then(
function(){
//your code after the 2 events...
})
这样,您就可以在一个函数中等待2个异步任务完成。