使用 Node 和 Angular 接收资源对象而不是值

Receiving Resource object instead of value using Node and Angular

我正在尝试获取通过授权 getCurrentUser 函数返回的值。调用该函数时,我得到了这个持有 Promise 的资源。我可以在那里看到 _id 值!我如何访问它?

提前致谢! Console Output

这是定义了 getCurrentUser 的 Auth 服务的一部分:

(function config() {
  function AuthService($location, $http, $cookies, $q, appConfig, Util, User) {
    const safeCb = Util.safeCb;
    let currentUser = {};
    let Auth = {};
    const LOCAL_HOST = 'localhost';

    if ($cookies.get('token') && $location.path() !== '/logout') {
      currentUser = User.get();
    }

    Auth = {
      getCurrentUser(callback) {
      if (arguments.length === 0) {
        return currentUser;
      }

      const value = currentUser.hasOwnProperty('$promise') ? currentUser.$promise : currentUser;
      return $q.when(value).then(user => {
        safeCb(callback)(user);
        return user;
      }, () => {
        safeCb(callback)({});
        return {};
      });
    }
...

这里是我的名字:

    angular.module('toroApp').directive('csvreaderDirective', ['$http', function ($http, Auth) {

      return {
        controller(Auth) {
          const currentUser = Auth.getCurrentUser();
          console.log(currentUser);
        },
        compile(element, Auth) {
    ...

Auth.getCurrentUser() 返回一个 $q promise 所以你需要使用承诺 API 来得到结果。

controller(Auth) {
    Auth.getCurrentUser().then(function (user) {
        const currentUser = user;
        console.log(currentUser);
    });
}