HarmonyOS中未直接提供进程睡眠的API。
方案一:可以通过setTimeout方法间接实现睡眠效果,参考如下sleep方法。
方案二:使用Atomics.wait来达到sleep效果,参考如下sleepAtomics方法。
@Entry @Component struct SleepPage { @State message: string = 'Hello World'; // 睡眠等待方法,time为睡眠时间,单位毫秒 sleep(time: number): Promise<void> { return new Promise(resolve => setTimeout(resolve, time)); } sleepAtomics(time: number) { let sharedBuf = new SharedArrayBuffer(4); let sharedArr = new Int32Array(sharedBuf); Atomics.wait(sharedArr, 0, 0, time); this.message = 'Atomics 3000'; } build() { Column() { Text(this.message) .id('SleepPageHelloWorld') .fontSize('50fp') .fontWeight(FontWeight.Bold) .alignRules({ center: { anchor: '__container__', align: VerticalAlign.Center }, middle: { anchor: '__container__', align: HorizontalAlign.Center } }) .onClick(() => { this.message = 'Welcome'; }) Button('Sleep修改message') .onClick(async () => { // 等待3秒 await this.sleep(3000); this.message = 'SLEEP 3000'; }) .margin({ top: 20 }); Button('sleepAtomics修改message') .onClick(async () => { // 等待3秒 this.sleepAtomics(3000); }) .margin({ top: 20 }); } .height('100%') .width('100%'); } }