Easy about Angular: 为什么要改变顺序?
Easy about Angular: Why does it change order?
只是一个 'silly' 问题,但对于 AngularJS 的学生来说,这让我很困惑。
当 console.logging 一个变量时,假设 var result
是来自 GET 或其他任何东西的承诺,并且 .then()
我做一些任务,比如分配一个变量。
var result = ... ;
$scope.number = {};
result.then(function(data) {
$scope.number = 5;
console.log($scope.number);
});
console.log($scope.number);
好的!
所以对我来说,这应该打印
5
5
(如果我在这个函数或 promise 之外初始化一个 $scope 变量)
5
undefined
(如果第二个 .log 试图在函数外打印一个未定义的全局变量)
所以我得到:
undefined
5
为什么外部 $scope.number
在内部 (5) 变量之前打印?
我想在获得 GET
后初始化变量,在承诺中,稍后使用初始化的变量。
谢谢 =) 这会加快我的学习速度!
主要要理解的是,下面returns一个promise马上就来了:
var result = ... ;
在那之后,您将一个函数传递给 promise 的 .then
方法:
result.then(...)
紧接着你做了:
console.log($scope.number);
然后 - 一旦异步操作(如 HTTP 请求)完成并且承诺解决 - 您传递给 .then
的函数最终执行:
function(data) {
$scope.number = 5;
console.log($scope.number);
}
因此存在可帮助您管理异步行为的承诺。当您必须管理多个异步函数时,它们才真正开始大放异彩:
asyncFunction1().then(function() {
// This executes after asyncFunction1 completes
return asyncFunction2();
}).then(function() {
// This executes after asyncFunction2 completes
});
只是一个 'silly' 问题,但对于 AngularJS 的学生来说,这让我很困惑。
当 console.logging 一个变量时,假设 var result
是来自 GET 或其他任何东西的承诺,并且 .then()
我做一些任务,比如分配一个变量。
var result = ... ;
$scope.number = {};
result.then(function(data) {
$scope.number = 5;
console.log($scope.number);
});
console.log($scope.number);
好的! 所以对我来说,这应该打印
5
5
(如果我在这个函数或 promise 之外初始化一个 $scope 变量)
5
undefined
(如果第二个 .log 试图在函数外打印一个未定义的全局变量)
所以我得到:
undefined
5
为什么外部 $scope.number
在内部 (5) 变量之前打印?
我想在获得 GET
后初始化变量,在承诺中,稍后使用初始化的变量。
谢谢 =) 这会加快我的学习速度!
主要要理解的是,下面returns一个promise马上就来了:
var result = ... ;
在那之后,您将一个函数传递给 promise 的 .then
方法:
result.then(...)
紧接着你做了:
console.log($scope.number);
然后 - 一旦异步操作(如 HTTP 请求)完成并且承诺解决 - 您传递给 .then
的函数最终执行:
function(data) {
$scope.number = 5;
console.log($scope.number);
}
因此存在可帮助您管理异步行为的承诺。当您必须管理多个异步函数时,它们才真正开始大放异彩:
asyncFunction1().then(function() {
// This executes after asyncFunction1 completes
return asyncFunction2();
}).then(function() {
// This executes after asyncFunction2 completes
});