使用Angular 8将http.get observable转换为字符串的最简单示例
我使用Angular通过Express访问Mongo中的值。 我似乎从Express获得了正确的响应,例如发送JSON、数组或简单的字符串值 设置订阅时,我可以使用使用Angular 8将http.get observable转换为字符串的最简单示例,angular,string,observable,Angular,String,Observable,我使用Angular通过Express访问Mongo中的值。 我似乎从Express获得了正确的响应,例如发送JSON、数组或简单的字符串值 设置订阅时,我可以使用console.log()中的变量访问这些值。但是,我不清楚如何将该值解析为在实际的async\await调用后可以在console.log中打印的变量 expressurl/testmongothree返回一个字符串。使用以下内容访问同一URL: basictest(){ return this.http.get('testmo
console.log()
中的变量访问这些值。但是,我不清楚如何将该值解析为在实际的async\await
调用后可以在console.log中打印的变量
expressurl/testmongothree返回一个字符串。使用以下内容访问同一URL:
basictest(){
return this.http.get('testmongothree/',{responseType: 'text'}).subscribe(data => {
console.log(data);
});
}
结果是0)字符串的控制台日志,但只有1)在async/await
之后控制台日志中的“订户”通知:
async basic_test() {
let res = await this._apiService.basictest();
console.log("console",res);
};
看看其他关于角度、可观测值以及将其值转换为字符串的堆栈溢出示例,这些示例和示例似乎最有希望
从根本上看,这个问题与其他类似的问题有着共同的问题-它试图使异步函数在同步上下文中工作。参见,和
那么,问题是什么是最容易的方式来延迟响应
console.log("console",res)
直到等待
问题解决为止
[在一天结束时,这可能是试图把一个圆钉子塞进一个方孔中。]
编辑:我简化了问题以缩小焦点。合并Andrei的建议缓解了一个令人困惑的问题。默认情况下,Angular将尝试将响应解析为JSON。要防止传递响应,请在选项中键入:“text”
basictest(){
return this.http.get('testmongothree/', {responseType: 'text'}).subscribe(data => {
console.log(data);
});
}
到目前为止,我发现的方法——很可能是有问题的——是创建解析可观察值的值,并更新和返回这些值,即
basicinfo;
basicobservable = this.http.get('testmongothree/', { responseType: 'text' }).subscribe(data => {
console.log("api console", data);
this.basicinfo = data;
});
basictest() {
this.http.get('testmongothree/', { responseType: 'text' }).subscribe(data => {
console.log("api console", data);
this.basicinfo = data;
});
return this.basicinfo;
}
我觉得你是在隐藏线索。第一部分讨论存在错误。那么为什么会有错误呢?试图解析的无效json是什么?