我的代码非常简单,但我无法理解它。
我有一个返回当前用户名的服务
所以我正在关注以获取用户名并在网页上显示。请注意当前登录的用户是“demo”
this.userData.getUsername().then(value => {
this.username = value ;
console.log("Inside -->" + value);
});
console.log("Outside -- >" + this.username);
所以现在我运行这段代码。我没有在this.username
中获得用户名这是console.log的输出
Outside -- >undefined
Inside -->demo
在这两种情况下,不要显示“演示”。 (内在和外在)
为什么外面是未定义的?
请帮助我理解这一点。
答案 0 :(得分:2)
这是预期的行为。
这是稍后返回的异步调用
this.userData.getUsername().then(value => {
this.username = value ;
console.log("Inside -->" + value);
});
在此期间继续执行
console.log("Outside -- >" + this.username);
当异步调用最终完成时,Promise
执行函数
value => {
this.username = value ;
console.log("Inside -->" + value);
}
早先通过了。