使用await之后的语句不再执行,如
@Entry
@Component
struct Index{
@State private num:number=0;
func(){
for(let i=0;i<10;i++)this.num++;
}
build() {
Column(){
Text(`${this.num}`)
Button('点我').onClick(async ()=>{
await new Promise(()=>{
this.func();
})
this.num++;
})
}.width('100%').padding({top:'30%'})
}
}
点击按钮后num只会增加10,this.num++这条语句并没有执行。需要改成如下语句才能正常执行:
@Entry
@Component
struct Index{
@State private num:number=0;
func(){
for(let i=0;i<10;i++)this.num++;
}
build() {
Column(){
Text(`${this.num}`)
Button('点我').onClick(async ()=>{
await new Promise<void>((resolve)=>{
this.func();
resolve();
})
this.num++;
})
}.width('100%').padding({top:'30%'})
}
}
点击按钮num增加了11,resolve()起到了返回值的作用。