计算数组中的最大值

雷诺不是比尔·盖茨

我有一个像这样的工厂:

myapp.factory('JobOffersByCounteryFactory', function($http) {
    var factory = {
        getList: function() {
            return $http.get('data/offres_par_pays.JSON')
                .then(function(response) {
//....code

                }, function(error) {
                    return 'There was an error getting data';
                });
        },
        getHighestNumberOfOffers: function() {
            var n = 0;
            $http.get('data/offres_par_pays.JSON')
                .then(function(response) {
                    n = Math.max.apply(Math, response.data['nb']);
                }, function(error) {
                    return 'There was an error getting data';
                });
            return n;
        }
    };
    return factory;
});

这个工厂将返回一个带有两个函数的对象,第二个函数将返回数组中的最大值 response.data['nb']

在我的控制器中,我测试了该功能:

console.log(JobOffersByCounteryFactory.getHighestNumberOfOffers());

但是我一直在获得价值0

我试图n像这样影响变量的一些数字n = 12;但是我总是得到值0,似乎n变量的值在内部没有变化$http.get('data/offres_par_pays.JSON').then(function(response)

我该如何解决?

Pankaj Parkar

您不能期望asynchronous呼叫能够同步工作。因为您永远都不知道何时完成。

为了控制它,您会告诉您async呼叫已完成或失败,这就是承诺。基本上$http.get有返回promise对象。您应该从方法中返回一个promise getHighestNumberOfOffers,将.then函数放置在其上,其中将包含成功和错误回调。&保证成功,您需要返回新计算的变量值。

代码

getHighestNumberOfOffers: function() {
  var n = 0;
  return $http.get('data/offres_par_pays.JSON')
    .then(function(response) {
    n = Math.max.apply(Math, response.data['nb']);
    return n;
  }, function(error) {
    return 'There was an error getting data';
  });
}

在执行操作时,console.log(JobOffersByCounteryFactory.getHighestNumberOfOffers())您只会得到由getHighestNumberOfOffers(根据上述建议)返回的promise对象为了获得准确的价值,您应该将其console.log放在service方法.then函数中getHighestNumberOfOffers

JobOffersByCounteryFactory.getHighestNumberOfOffers().then(function(n){
   console.log(n)
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

优雅地同时计算数字数组的最小值和最大值

来自分类Dev

如何计算数组中相同值之间的最大距离

来自分类Dev

如何逐个元素计算数组和数字之间的最大值?

来自分类Dev

计算数组中出现次数并获取最大值(单词袋)的简单方法

来自分类Dev

计算数据帧中时间样本内的最大值数量

来自分类Dev

计算数组中相同值的数量

来自分类Dev

如何计算数组中的多个值

来自分类Dev

如何计算数组中的值?

来自分类Dev

如何计算数组中的值?

来自分类Dev

计算数组哈希中的重复值

来自分类Dev

如何计算数组中的公共值

来自分类Dev

计算数组中的双精度值

来自分类Dev

计算数组Javascript中的重复值

来自分类Dev

计算数组多个值中的元素

来自分类Dev

如何在JavaScript中计算数组中的最大重复值

来自分类Dev

计算数组的最大高度

来自分类Dev

计算hadoop中的'n'最大值

来自分类Dev

在计算中设置最大值

来自分类Dev

计算 postgresql 中的最大值

来自分类Dev

计算最大值

来自分类Dev

计算数据帧的最小值和最大值时出现类型错误

来自分类Dev

数组中的最大值(StdClass错误)

来自分类Dev

在numpy数组中传播最大值

来自分类Dev

PHP中数组的最大值

来自分类Dev

如何显示数组中的最大值

来自分类Dev

使用OpenMP的数组中的最大值

来自分类Dev

列表数组中的最大值

来自分类Dev

如何找到数组中的最大值?

来自分类Dev

拆分线性数据并计算数据php的最大值