Angularjs 角函数同步
我的问题是如何按顺序执行3个函数(在服务中声明):Angularjs 角函数同步,angularjs,asynchronous,synchronization,angularjs-service,Angularjs,Asynchronous,Synchronization,Angularjs Service,我的问题是如何按顺序执行3个函数(在服务中声明): function1(); function2(); function3(); 所有函数都包含http命令(例如put或get)。这就是为什么如果我使用上面的代码,函数3将在函数2之前执行。我尝试用then链接函数,但也没有用。您需要返回承诺,然后使用承诺链接,因为您的函数是异步的 function1().then(function(response) { /* executes function2, if functi
function1();
function2();
function3();
所有函数都包含http命令(例如put或get)。这就是为什么如果我使用上面的代码,函数3将在函数2之前执行。我尝试用then链接函数,但也没有用。您需要返回承诺,然后使用承诺链接,因为您的函数是异步的
function1().then(function(response) {
/* executes function2, if function1 return success */
function2().then(function(response) {
/* executes function3, if function2 return success */
function3();
}
}
在文档()中,您可以看到如何返回承诺。对于使用$http或$resource提供程序的情况:它们总是返回一个承诺,您可以将其用于您的目的 您需要返回承诺,然后使用承诺链接,因为您的函数是异步的
function1().then(function(response) {
/* executes function2, if function1 return success */
function2().then(function(response) {
/* executes function3, if function2 return success */
function3();
}
}
在文档()中,您可以看到如何返回承诺。对于使用$http或$resource提供程序的情况:它们总是返回一个承诺,您可以将其用于您的目的 是的,谢谢,然后使用then/PROMITES还有其他方法吗?$http是硬编码异步的。您需要编写自己的提供程序来进行同步调用。但是,这是一个非常糟糕的主意,因为您的UI被阻塞了。是的,谢谢,有没有其他方法可以做到这一点,然后使用then/promises?$http是硬编码异步的。您需要编写自己的提供程序来进行同步调用。然而,这是一个非常糟糕的主意,因为你的UI被阻塞了。