如果我对不返回任何内容的函数使用 async/await 会发生什么?

Moo*_*ook 2 javascript async-await android-youtube-api reactjs react-native

首先,我是 javascript 的初学者,尤其是在 async/await/promise 方面。

我想seekTo()同步使用视频库(react-native-youtube)中的方法。在MDN 指南中,它说 Await Expression 需要 Promise 或一些值。seekTo()即使它什么都不返回,是否可以使用该方法?

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

如果有人非常了解 react-native-youtube 库,请告诉我如何将视频的 endTime 设置为部分播放。

Fab*_*ini 5

  1. 如果一个函数(不是异步的)没有明确返回一个值,那么它undefined在函数的末尾返回

  2. 您可以在异步上下文中很好地使用这种“无返回”函数——它们只返回一个解析为未定义的 Promise

  3. 虽然我没有使用过你提到的库,但请始终记住这await x是一个表达式,而不是一个语句。所以,如果 .seekTo 是异步的,你想要的是:

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

  • 大部分是正确的,但由于函数是异步的,它总是返回一个承诺。如果您不指定返回值,该函数将返回一个解析为 `undefined` 的承诺。 (2认同)