Как получить переменную из .then - PullRequest
1 голос
/ 20 апреля 2020

Я просто хочу получить данные из этого:

{"id":"abba5","data":24.555812751177125,"timestamp":1587380298460}

(Это 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
        })
}}

1 Ответ

0 голосов
/ 20 апреля 2020

Просто добавьте return по вашему запросу. Кстати, ваша функция асинхронна, и toFixed функция возвращает string, поэтому она не возвращает number, а Promise, который возвращает string, то есть Promise<string>. Если вы хотите, чтобы ваша функция возвращала Promise<number>, вы должны удалить toFixed(0)

export class HttpTemperature{
  getTemperature(): Promise<string> {
    return Axios.get('http://dummy-sensors.azurewebsites.net/api/sensor/abba5').then (response =>{
        const afgerond = parseFloat(response.data.data).toFixed(0)
        return afgerond
    })
}}

. Вы также можете использовать async / await так:

export class HttpTemperature{
  async getTemperature(): Promise<string> {
    const response = await Axios.get('http://dummy-sensors.azurewebsites.net/api/sensor/abba5')
    const afgerond = parseFloat(response.data.data).toFixed(0)
    return afgerond
}}

edit:

Эта функция является асинхронной, поэтому для получения вашей температуры вам нужно будет вызвать await this.getTemperature() или this.getTemperature().then(temperature => ...

Так что-то вроде этого

 async jsonobjecttemperatuur(){
    const httptemperature = new HttpTemperature()
    const t = await httptemperature.getTemperature()
    ...
...