【问题标题】:Force boolean result from promise function in angularjsangularjs中promise函数的强制布尔结果
【发布时间】:2016-04-13 03:19:31
【问题描述】:

在 angularjs 中,我试图根据 promise 函数返回 get 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>

【问题讨论】:

    标签: angularjs angular-promise


    【解决方案1】:

    你应该试试:

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

    【讨论】:

    • 当我尝试 var isInternal = true; userInfo.getUser().then(function(user) { isInternal = user.internal; console.log(isInternal +"--"); }); console.log(isInternal+"------");结果:假--真----
    • 是的,没错。 console.log(isInternal+"-----");在 promise 之外首先执行,然后打印 true------,然后我们从 promise 获取回调,然后执行 promise 的 then() 部分,并打印 user.internal 的值好像是假的。
    • 我需要不同函数中的 isInternal var 值。
    • 你可以使用它。 $scope.isInternal
    【解决方案2】:

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

    var var = service.getAsyncData() ... 无法按预期工作

    tutorial on promises

    【讨论】:

      猜你喜欢
      • 2021-10-21
      • 1970-01-01
      • 2018-01-22
      • 1970-01-01
      • 2015-06-17
      • 2017-05-09
      • 2014-12-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多