Что произойдет, если я использую async / await с функцией, которая ничего не возвращает? - PullRequest
0 голосов
/ 18 января 2019

Прежде всего, я новичок в javascript, особенно в async / await / обещании.

Я хочу использовать метод seekTo() в видео библиотеке (реагировать-нативно-YouTube) синхронно. В MDN guide говорится, что Await Expression требуется Promise или какое-то значение. Можно ли использовать метод seekTo(), даже если он ничего не возвращает?

initVideo = async () => {
  await this._youTubeRef && this._youTubeRef.seekTo(startTime);
  this.setState({
    isPlaying: true
  });
}

Если кто-то хорошо знает о библиотекеact-native-youtube, посоветуйте, пожалуйста, как настроить endTime видео для воспроизведения раздела.

1 Ответ

0 голосов
/ 18 января 2019
  1. Если функция (не асинхронная) явно не возвращает значение, то в конце функции возвращается undefined

  2. Вы можете использоватьтакие функции «без возврата» прекрасно работают в асинхронном контексте - они просто возвращают Promise, который разрешается в неопределенное значение

  3. Хотя я не работал с упомянутой вами библиотекой, всегда помнитечто await x является выражением, а не утверждением.Итак, если .seekTo является асинхронным, вы хотите:

&& await this._youTubeRef.seekTo(startTime);

...