Promise a Angular broatcast rubrika: Programování: JavaScript
Ahoj,
mam mensi problem ze nevim/nerozumim jak pracovat v angularu s promise, pokud promise reaguje na broatcast zpravu. Budu to psat v pseudo kodu at se neupisu :)
mam promise ktera se resolvuje pokud prijde zprava
$q(function(){ var timer; $rootScope.$on('nejaky klic', function(){ resolve(); clearTimeout(timer); }) timer = setTimeout(function(){ reject(); }, 1000) }).then(function(){ alert('ahoj svete'); })
Problem je ze kdyz tuhle promise vytvorim v nejakem bloku ktery jen jen docasny. Napriklad v dialogovem okne, takze promise by melo byt aktivni jen pokud je dialogove okno otevrene. Tak i po zavreni dialogoveho okna pokud prijde broatcast "nejaky klic", tak se zavola resolve.
Resenim by bylo kdyby promise slo nejak znicit/vymazat, nebo v promise nesmi byt nic z venku?
Predevsim nechapu proc pouzivat promisu a zaroven eventu. Co brani rovnou zavolat potrebnou funkci na $on.
Co se tyka problemy s modalem (nebo jinem elementem ktery ma vlastni scope) staci pouzit event $destroy. Neco ve smyslu:
// listen custom event on element scope var releaseEvent = $scope.$on('customEventName', function(){ // do something... }) // prevent memory leaks $scope.$on('$destroy', function(){ releaseEvent(); })
Pro zobrazení všech 4 odpovědí se prosím přihlaste:
Nebo se přihlaste jménem a heslem: