angularjs 中的承诺函数强制布尔结果

Force boolean result from promise function in angularjs

在 angularjs 中,我正在尝试 return 根据 promise 函数获取 isInternal true 或 false 值。但我得到了另一个承诺(Promise {$$state: Object} $$州 : 目的 状态 : 1个 价值 : 真)

$scope.isInternal = userInfo.getUser().then(function(user) {return user.internal;});
          console.log($scope.isInternal);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.8/angular.min.js"></script>

你应该试试:

userInfo.getUser().then(function(user) {
  $scope.isInternal = user.internal;
});

这里有一个关于 promises 的很​​好的教程,其中第三个部分专门说明了为什么会这样:

var var = service.getAsyncData() ... 不会按预期工作

tutorial on promises