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");
})