困惑:$q.when() 还是只调用一个没有它的函数?
confused: $q.when() or just call a function without it?
总的来说,我对 AngularJS 和 JavaScript 比较陌生。我最近一直在尝试通过创建自己的项目来学习。我注意到我的应用程序的功能在这样的代码之间没有明显差异:
$q.when(authenticationService.login($scope.username, $scope.password))
.then(function (response) {
}, function (error) {
});
还有这个:
authenticationService.login($scope.username, $scope.password)
.then(function (response) {
}, function (error) {
});
看来 $q.when 并不是那么必要。我读了一些书,我认为没有差异可能是因为我的 authenticationService.login()
returns 是一个承诺。
但仅仅是为了这个吗? $q.when() 只是为了确保里面的内容是一个承诺吗? (所以如果是,它就离开它,如果不是,它就把它包装在一个承诺中)?
其他可能的用例是什么?
谢谢!
The documentation 似乎很清楚这一点:
Wraps an object that might be a value or a (3rd party) then-able promise into a $q promise. This is useful when you are dealing with an object that might or might not be a promise, or if the promise comes from a source that can't be trusted.
如果术语 "thenable"(他们写成 "then-able")不熟悉,值得回顾 Promises/A+ spec。
总的来说,我对 AngularJS 和 JavaScript 比较陌生。我最近一直在尝试通过创建自己的项目来学习。我注意到我的应用程序的功能在这样的代码之间没有明显差异:
$q.when(authenticationService.login($scope.username, $scope.password))
.then(function (response) {
}, function (error) {
});
还有这个:
authenticationService.login($scope.username, $scope.password)
.then(function (response) {
}, function (error) {
});
看来 $q.when 并不是那么必要。我读了一些书,我认为没有差异可能是因为我的 authenticationService.login()
returns 是一个承诺。
但仅仅是为了这个吗? $q.when() 只是为了确保里面的内容是一个承诺吗? (所以如果是,它就离开它,如果不是,它就把它包装在一个承诺中)?
其他可能的用例是什么?
谢谢!
The documentation 似乎很清楚这一点:
Wraps an object that might be a value or a (3rd party) then-able promise into a $q promise. This is useful when you are dealing with an object that might or might not be a promise, or if the promise comes from a source that can't be trusted.
如果术语 "thenable"(他们写成 "then-able")不熟悉,值得回顾 Promises/A+ spec。