Reactjs setInterval在react native中不使用异步函数

Reactjs setInterval在react native中不使用异步函数,reactjs,typescript,react-native,expo,Reactjs,Typescript,React Native,Expo,我只是在学习母语,我正在尝试录制视频并在屏幕上显示剩余的视频持续时间 我正在使用以下代码: setInterval (() => { this.setState ({progress: progress * 2}); }, 1000); var video = await this.camera.recordAsync ({ mute: t

我只是在学习母语,我正在尝试录制视频并在屏幕上显示剩余的视频持续时间

我正在使用以下代码:

setInterval (() => {
                    this.setState ({progress: progress * 2});
                  }, 1000);
                  var video = await this.camera.recordAsync ({
                    mute: true,
                    quality: '480p',
                    maxDuration: this.state.max_duration,
                  });

不过,视频录制非常好,但setiInterval已停止工作。如何在
异步函数中运行setInterval
?请帮助..

JavaScript/ReactJS/React Native没有本机睡眠功能。由于在ES2018中实现了Promissions和async/await,您可以这样做来执行setTimeout/setInterval:

为异步函数设置设置间隔:

setInterval(async () => {
    await print("waiting") 
}, 2000);
(也可以试试这个)可以使函数递归。这样,一旦函数完成,就可以开始下一次迭代的超时

async function doSomething() {
    //code to run on a interval

    setTimeout(doSomething, 2000); // <------------------
 
}
setTimeout(doSomething, 2000);
现在在async函数中使用此选项:

await sleep(2000)
你也可以用这个

    sleep(500).then(() => {
      console.log("waiting"); 
      
    })
    sleep(500).then(() => {
      console.log("waiting"); 
      
    })