两个函数之间的角度承诺

Angular promise between two functions

本文关键字:承诺 之间 函数 两个      更新时间:2023-09-26

我有两个函数

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);
    })
}

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

根据请求,我添加了代码的用途。

我有:

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

对于每个类别,我都必须获得产品,对于每个产品,我必须检查它是否是最受欢迎的。糟糕的是,在目前的情况下,我必须进行许多异步调用,其中一个必须等待另一个。

我正在使用下面的代码,这对我来说很有效。我用另一种方法调用这段代码,这是在等待服务器的响应

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

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

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

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