小编Ale*_*xar的帖子

Array.prototype.find() 在异步函数中返回 undefined

我的Array.prototype.find()方法有问题。它在使用时似乎无法正常工作$http request..我已经尝试了所有想到的方法,但它总是返回未定义。我猜的错误是存在的,因为我登录response.datauser_to_find定义之前found_user,并预期其价值。

所以我有这个服务:

app.service('UserService', ['$http','$q', function($http, $q) {
  return {
    findUser: function(user_to_find) {
      let defer = $q.defer();
      $http({
        method: "GET",
        url: 'http://localhost:3000/users'
      }).then(function(response){
        let found_user = response.data.find(acc=>{ //found_user is always undefined
          acc.username == user_to_find;
        })
        defer.resolve(found_user);
      }),function(response) {
        defer.reject(response);
        console.log("Error finding user");
      }
      return defer.promise;
    }
  }
}])
Run Code Online (Sandbox Code Playgroud)

javascript asynchronous http promise angularjs

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

标签 统计

angularjs ×1

asynchronous ×1

http ×1

javascript ×1

promise ×1