Асинхронное ожидание не работает в реагировать на родной - PullRequest
0 голосов
/ 30 апреля 2018

     first() {
        setTimeout(() => console.log('I am First CALL afer 1 second'), 1000)
      }
      second() {
          console.log("SEcond methof is called");
      }
  
      async  getMoviesFromApi() {
        try {
          let response = await this.first() ;
    
          let response2 =  this.second() ;

        } catch (error) {
          console.error(error);
        }
      }

Здесь вторая функция должна вызываться после первой функции, а первая будет напечатана через 1 секунду, а вторая вызывается напрямую, она не ожидает функцию первой. пожалуйста помогите

1 Ответ

0 голосов
/ 30 апреля 2018

Вы не возвращаете обещание, вы просто вызываете setTimeout, который не является ожидаемым

Вы должны сделать что-то вроде этого:

first() {
   return new Promise(function (resolve, reject) {
        setTimeout(() => {
              console.log('I amFirest CAll afer 1 second');
              resolve();
        }, 1000)
   });
}

Док: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/await

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...