【问题标题】:Angular promise between two functions两个函数之间的角度承诺
【发布时间】:2016-05-05 08:45:11
【问题描述】:

我有两个函数

var firstFunction = function(aPromise) {
    //Do stuff

    return aPromise.resolve();
}


var secondFunction = function(i) {

    var defer = $q.defer;

    //Do stuff with i (an index) - used for anadromic calls.

    firstFunction(defer).promise.then(function() {

        i++;
        secondFunction(i);

    })

}

我需要第二个函数来等待第一个函数调用它的承诺。 这个语法正确吗?

请求后我添加代码的用途。

我有:

类别 > 产品 > 我必须从服务器调用的收藏夹。

对于每个类别,我必须获取产品,并且对于每个产品,我必须检查它是否是最喜欢的。不好的是,在目前的情况下,我必须进行许多异步调用,并且一个必须等​​待另一个。

【问题讨论】:

  • 第二个函数中的i 是什么?
  • 用于功能的索引

标签: javascript angularjs angular-promise


【解决方案1】:

我正在使用下面的代码,这对我有用。我正在以不同的方法调用此代码,该方法正在等待我从服务器获得响应

var promise = [XYZService.locations($scope.newrecord.state.Text)]
$q.all(promise).then(function (data) {
$scope.addnewrecord.locations = data[0];
});

在这里,根据状态,我从服务器获取相应的位置并将这些位置绑定到模型

【讨论】:

    【解决方案2】:

    我认为不应该在firstFunction() 中发送 defer like 参数,var defer = $q.defer; 必须是 var defer = $q.defer();

    如果想从服务中获取数据,您可以在 AngularJS 中使用resolve,请在此处阅读解释文章:http://www.undefinednull.com/2014/02/17/resolve-in-angularjs-routes-explained-as-story/。希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 2018-11-10
      • 2013-04-17
      • 1970-01-01
      • 1970-01-01
      • 2014-11-13
      • 2016-10-03
      • 1970-01-01
      • 1970-01-01
      • 2015-11-22
      相关资源
      最近更新 更多