如何在AngularJS中使用$ resource POST方法请求等待来自rest API的响应?

时间:2018-05-16 10:52:16

标签: angularjs angular-promise

  

问题:这是我的Angularjs代码,我使用令牌调用了POST方法。从后端提供响应需要一些时间,因此Angularjs代码将响应值视为null并开始进一步执行。   如果我出错了,请让我纠正。

     

预期结果:AngularJS调用应该等待后端发出的执行更多代码的响应。

this.csrfHeaderName_ = kdCsrfTokenHeader;
this.tokenService_ = kdCsrfTokenService;
let csrfTokenPromise = this.tokenService_.getTokenForAction('shiftm');
let deferred = $q.defer();
csrfTokenPromise.then(
  (csrfToken) => {
    let resource = $resource('api/v1/shiftm', {}, {
      save: {
        method: 'POST',
        headers: {
          [this.csrfHeaderName_]: csrfToken, //Token
        },
      },
    });
    resource.save(
      shiftmData, (response) => {
        if (response.length !== 0 && response.length === 0) {
          console.log("Response Length is Nonzero");
          console.log("shiftmData==>",response);
        }
        else {
          console.log("Response Length is zero");
        }
        deferred.resolve('request successful');
      },
     (err) => {
        deferred.reject(err);
      });
      },
  (err) => {
    deferred.reject(err);
  });
return deferred.promise;

0 个答案:

没有答案