小编Mad*_*gan的帖子

循环角度的承诺混淆

我理解在简单场景中使用promises但是当前在使用for循环和对本地sqlite数据库进行一些更新时如何实现某些东西时确实很困惑.

代码如下

surveyDataLayer.getSurveysToUpload().then(function(surveys) {
  var q = $q.defer();

  for (var item in surveys) {
    var survey = surveys[item];

    // created as a closure so i can pass in the current item due to async process
    (function(survey) {
      ajaxserviceAPI.postSurvey(survey).then(function(response) {
        //from response update local database
        surveyDataLayer.setLocalSurveyServerId(survey, response.result).then(function() {
          q.resolve; // resolve promise - tried only doing this when last record also
        })
    });
    })(survey) //pass in current survey used to pass in item into closure


  }

  return q.promise;

}).then(function() {
  alert('Done'); …
Run Code Online (Sandbox Code Playgroud)

javascript asynchronous promise angularjs

1
推荐指数
1
解决办法
74
查看次数

标签 统计

angularjs ×1

asynchronous ×1

javascript ×1

promise ×1