Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 角度4-值不在订阅之外_Angular_Typescript - Fatal编程技术网

Angular 角度4-值不在订阅之外

Angular 角度4-值不在订阅之外,angular,typescript,Angular,Typescript,我在角度服务中有以下代码: this.signInService.signIn(this.model).subscribe(user => {this.user = user,console.log(this.user.Username)}); console.log(this.user.Username); 我有两个console.log语句。subscribe函数中的函数打印正确的值。但是,第二个console.log打印未定义的内容 这是由于subscribe的Async

我在角度服务中有以下代码:

 this.signInService.signIn(this.model).subscribe(user => {this.user = user,console.log(this.user.Username)});   
 console.log(this.user.Username);

我有两个
console.log
语句。
subscribe
函数中的函数打印正确的值。但是,第二个
console.log
打印未定义的内容

这是由于
subscribe
Async
系统造成的。因此,代码不会停止使用
subscribe
方法来重新运行数据。当is有数据时,它会重新运行。您可能会注意到console在实际数据之前打印了
未定义的


因为它是异步的。在收到任何响应之前,将调用第二个
控制台.log
。我知道了。我正在将数据存储到下面的
localStorage
中。这是否意味着我可能正在存储未定义的数据?在第四点是的。当
subscribe
方法返回值no.时,这通常类似于第二次延迟。因此,简单的做法是将store语句放在subscribe中,对吗?是的。如果您需要对该响应数据运行一个方法,那么还需要将该方法放入
subscribe
方法中。除非它的HTML在收到数据时会自动更新。