【发布时间】:2017-06-04 15:51:53
【问题描述】:
我正在学习 angularjs 并尝试使用 Promise 将问候语附加到 h3 标签。但它不起作用(没有错误日志)。
angular.module('app', []).controller('test', function ($scope) {
$scope.greeting = 'Hello world!';
let p1 = new Promise(r => r('Hi'));
let p2 = new Promise(r => r('Im Gosu'));
Promise.all([p1, p2]).then(p => {
$scope.greeting = `${p[0]} ${p[1]}`;
console.log(p[0]);
console.log(p[1]);
});
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="app" ng-controller="test">
<h3 ng-bind="greeting"></h3>
</div>
我错过了什么?
【问题讨论】:
-
使用 $q。除非您确定自己需要它,否则您不需要本地承诺。
-
并且不要使用 Angular 1.2.23。它已经有好几年了。当前版本是 1.6.x。
-
@estus 谢谢!为什么必须是 $q 而不是 Promise?
-
$q 与消化循环紧密相关,也“更同步”。 SO 上已经有一堆 $q vs Promise 主题了。
标签: javascript angularjs