【发布时间】:2020-08-03 01:29:04
【问题描述】:
我只想从中获取数据:
{"id":"abba5","data":24.555812751177125,"timestamp":1587380298460}
(这是the URL)
这是我使用的代码,但它不起作用,我不知道我只想返回数据 (24.555812751177125)。
export class HttpTemperature{
getTemperature(): number{
Axios.get('http://dummy-sensors.azurewebsites.net/api/sensor/abba5').then (response =>{
const afgerond = parseFloat(response.data.data).toFixed(0)
return afgerond
})
}}
【问题讨论】:
-
好吧,你不能那么简单地从
then中取出变量,因为http 调用是异步完成的。你能做到的唯一方法是做一个循环阻塞直到你得到答案,但这在性能方面真的很糟糕。这就是promise概念存在的原因,以便您可以将异步操作链接起来。 -
以及你将如何实现它,因为我不知道它是如何工作的
-
如何实现这样的循环?在执行
Axios.get之前,您将声明let afgerond。然后,在Axios.get之后(不在then内部函数内),你会有一个什么都不做的while 循环,像这样:while(afgerond === undefined) { }然后返回afgerond。但请不要这样做。按照 diouze 说的做,并修复你的其余代码,以便它可以正常工作。
标签: typescript api axios