是Javascript和Angular的新手。
我有两个在独立的回调中运行的代码,它们是从第三方库中调用的。 (Kendo UI库回调)
函数A()启动$ scope.evalAsync
函数B()假定数据已由A()设置并且行为相应。
这两个功能不能真正相互交互。不同的范围。
函数B()的内容需要等待A()完成才能运行。
有没有办法优雅地实现这一目标? 我唯一能想到的就是在$ rootScope中添加另一个布尔值,并可能暂停一个函数,直到它从false变为true。
不能使用$ q promises,因为如上所述,A和B都是由第三方库在没有链接范围的第三方库中运行的回调。
答案 0 :(得分:2)
有几种方法可以实现这一目标,但我可能会兑现承诺。这两个评估通过$rootScope
链接。您可以执行以下操作:
A()
完成后,解决该诺言。B()
在执行之前等待诺言得到解决。这假定这两个功能只能运行一次。如果他们需要多次运行,则需要更复杂的设置。