在Angular中你好$ timeout

时间:2014-03-07 01:59:39

标签: angularjs timeout promise

我正在阅读使用AngularJS 掌握Web应用程序开发一书,在第3章中,当autors花了大约$ q并承诺他们写了一个$ timeout的例子。

的index.html

<h1>Hello, {{name}}!</h1>

controller.js

$scope.name = $timeout(function () {
  return "World";
}, 2000);

问题是我测试代码并且这对我不起作用,如果我写错了,我不会写,并且看几次,但我不知道错误在哪里。< / p>

我更改了控制器中的代码:

$timeout(function () {
     $scope.name = "World";
}, 2000);

并且工作得很好。

任何人都知道为什么会发生这种情况?我包含了一个示例here

的插件

1 个答案:

答案 0 :(得分:2)

这是因为超时返回promise,而不是字符串。在回调内部返回将返回将在链中传递的内容。

使用它的正确方法是:

$timeout(function () {
          return "World";
    }, 2000).then(function(p) {
      $scope.name = p;
    });