Вызов асинхронных / ожидающих функций параллельно не работает на компоненте ReactDidMount - PullRequest
0 голосов
/ 22 мая 2018

Я пытаюсь вызвать this.func дважды асинхронно, this.func делает http-запрос, но на вкладке сети я вижу, что эти две функции не работают параллельно.Я уже прочитал эти ответы: ответ 1 , ответ 2

    async componentDidMount() {     
   //...
    var applicationVersion2 = await Promise.all([this.func(this.state.applicationUrl), this.func(this.state.applicationUrl2)]); 
   //...
    }

как сейчас:

enter image description here

как и должно быть:

enter image description here

1 Ответ

0 голосов
/ 22 мая 2018

Как я упоминал в комментариях выше, я подозреваю, что this.func не является асинхронным кодом и / или не возвращает обещание, хотя, не видя его, трудно сказать наверняка.Попробуйте это:

async componentDidMount() {     
  //...
  const first = this.func(this.state.applicationUrl)
  console.log(`First: ${first}`)   
  const second = this.func(this.state.applicationUrl2)
  console.log(`Second: ${second}`) 
  const applicationVersion2 = [await first, await second]
  //...
}

В вашем console.log вы должны увидеть:

First: Promise {<pending>}
Second: Promise {<pending>}

Но я предполагаю, что вы увидите не обещаниезначение от обоих.Если это так, сделайте this.func async function или верните Promise из него.

...