Angular函数同步
Angular function syncronization
我的问题是如何按顺序执行 3 个函数(在服务中声明):
function1();
function2();
function3();
所有函数都包含 http 命令(例如 put 或 get)。这就是为什么如果我使用上面的代码,函数 3 将在函数 2 之前执行。我尝试将函数与 then 链接起来,但这也无济于事。
您需要 return 一个承诺,然后使用承诺链接,因为您的函数是异步的。
function1().then(function(response) {
/* executes function2, if function1 return success */
function2().then(function(response) {
/* executes function3, if function2 return success */
function3();
}
}
在 angular 文档 (https://docs.angularjs.org/api/ng/service/$q) 中,您可以了解如何 return 承诺。对于您使用 $http 或 $resource 提供程序的情况:它们总是 return 一个您可以用于您的目的的承诺。
我的问题是如何按顺序执行 3 个函数(在服务中声明):
function1();
function2();
function3();
所有函数都包含 http 命令(例如 put 或 get)。这就是为什么如果我使用上面的代码,函数 3 将在函数 2 之前执行。我尝试将函数与 then 链接起来,但这也无济于事。
您需要 return 一个承诺,然后使用承诺链接,因为您的函数是异步的。
function1().then(function(response) {
/* executes function2, if function1 return success */
function2().then(function(response) {
/* executes function3, if function2 return success */
function3();
}
}
在 angular 文档 (https://docs.angularjs.org/api/ng/service/$q) 中,您可以了解如何 return 承诺。对于您使用 $http 或 $resource 提供程序的情况:它们总是 return 一个您可以用于您的目的的承诺。