带有飞行前请求的 Angularjs $q.all 在 OPTIONS 请求后解析

标签 angularjs promise angular-promise preflight

我有多个删除请求,前面有一个 OPTIONS 飞行前请求。但是在OPTIONS请求之后,控件进入了$q.all的then。这是我的代码:

companyMasterC.confirmDelete = function(ev, text) {
     simpleDialog.verifyDelete(ev, text).then(function() {
         companyMasterC.deletePromise = companyMasterC.deleteSelected().then(function(response) {
              companyMasterC.getCompanies();
          }, function(error) {
                 console.log(error);
          });
     });
};

companyMasterC.deleteSelected = function(){
   var promises = companyMasterC.selectedRows.map(function(selectedRow) {
       return company.delete({id:selectedRow.id});
   });
   return $q.all(promises);
};

因此,“网络”选项卡中发生的情况如下:首先执行 OPTIONS 请求,然后执行 GET 请求companyMasterC.getCompanies(); 它应该在执行DELETE 请求时执行。在 GET 请求之后执行 DELETE 请求。

最佳答案

改变

return company.delete({id:selectedRow.id});

return company.delete({id:selectedRow.id}).$promise;

修改后的代码:

companyMasterC.confirmDelete = function(ev, text) {
     simpleDialog.verifyDelete(ev, text).then(function() {
         companyMasterC.deletePromise = companyMasterC.deleteSelected().then(function(response) {
              companyMasterC.getCompanies();
          }, function(error) {
                 console.log(error);
          });
     });
};

companyMasterC.deleteSelected = function(){
   var promises = companyMasterC.selectedRows.map(function(selectedRow) {
       return company.delete({id:selectedRow.id}).$promise;
   });
   return $q.all(promises);
};

关于带有飞行前请求的 Angularjs $q.all 在 OPTIONS 请求后解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35932610/

相关文章:

javascript - 递归 promise 创建树

javascript - 将分配替换为延迟分配

javascript - UI 不会立即更新,只有在第二次尝试后才会更新

javascript - 如何将函数返回到作用域变量中?

angularjs - Angular 的 $watch 的奇怪行为

javascript - 客户端框架还是服务器端框架?

javascript - 使用 promise 在下一个 promise 中使用返回值编写 while 循环

javascript - 如何将 angularjs $q.all() 与异步创建的 Promise 数组一起使用

javascript - 一次性解析 promise 单例(Angular 服务)

javascript - AngularJS:在解决 promise 后更新表单字段的代码属于哪里?