-1
$scope.$on("stopSpinner", function() { 
     $('body').mask('hide'); 
    }); 

上記のコードは、stopSPinnerイベントが受信されたときに実行されます。しかし、私の要件はもう少し複雑です。関数を実行する前に2つの異なるイベントが発生するのを待っています。イベントの順序は異なるかもしれませんが、私は両方のイベントが発生した後にのみ実行するように機能したいと思います。これは、このよう2つのイベントがトリガーされた後に関数を呼び出す

答えて

1

使用する$ q.allとの約束を、achivedする方法:

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非同期タスクを待つことができるでしょう。

関連する問題