【发布时间】:2019-04-23 14:46:01
【问题描述】:
我有一个UsernameService,它返回一个包含 json 对象的 observable。在AnotherService 中,我想从UsernameService 对象中注入一个值。
到目前为止,我可以从 UsernameService 订阅 observable,并且可以在控制台中显示它。我什至可以在控制台中向下钻取并显示对象中的一个值。但是,我不明白如何将该值分配给我可以使用的变量。相反,当我尝试将值分配给变量时,在控制台中我得到:订阅者{closed: false, _parent: null, _parents: null...etc
这是我在控制台中成功显示可观察值的示例:
import { UsernameService } from './username.service';
import { Injectable, OnInit } from '@angular/core';
import 'rxjs/Rx';
@Injectable()
export class AnotherService {
username: any[] = [];
constructor(private getUsernameService: UsernameService) { }
someMethod() {
let myFinalValue = this.getUsernameService.getUsername()
.subscribe(username => console.log(username.data[0].AccountName));
}
}
上面的代码导致控制台正确显示我试图分配给变量myFinalValue 的AccountName 字段的值。但是,我似乎无法弄清楚我哪里出错了。
当我尝试使用相同的技术来简单地获取值(而不是登录控制台)时,我得到了通用的:Subscriber {closed: false, _parent: null, _parents: null...etc,正如我之前提到的。
这是导致我的错误的代码示例:
import { UsernameService } from './username.service';
import { Injectable, OnInit } from '@angular/core';
import 'rxjs/Rx';
@Injectable()
export class AnotherService {
username: any[] = [];
constructor(private getUsernameService: UsernameService) { }
someMethod() {
let myFinalValue = this.getUsernameService.getUsername()
.subscribe(username => this.username = username.data[0].AccountName);
console.log(myFinalValue);
}
}
最终,我的目标是将 username.data[0].AccountName 中的值分配给变量 myFinalValue。
提前感谢您的帮助!
【问题讨论】:
标签: angular typescript angular2-observables