我有一个角度4的应用程序,在这一个,我想打开/加载一个svg文件,让里面的字符串。 所以我想打开像svg或txt这样的文件并获取相应的字符串。
我尝试这样做:
this.http.get('assets/images/module.svg').map(res => res.text()).subscribe(text => {this.data = text});
但this.data
总是未定义,而如果我这样做:
this.http.get('assets/images/module.svg').map(res => res.text()).subscribe(text => {console.log(text)});
我在控制台中有字符串。
您知道为什么我无法获取字符串或者是否有其他方法可以打开文件?
答案 0 :(得分:1)
我猜你正在尝试这样的事情
this.http.get('assets/images/module.svg').map(res => res.text()).subscribe(text => this.data = text);
console.log(this.data);
第一个呼叫是
async
呼叫,因此需要一些时间来获取数据 并将其分配给变量,其中console.log
是sync
立即发生的陈述,因此你得到了不确定。
如果您想使用this.data,我建议您在订阅中执行所有过程。
例如
this.http.get('assets/images/module.svg').map(res => res.text()).subscribe(text => { this.data = text; console.log(this.data));