第 59 课2026.09.23
用户点击“重试关闭”后,不让上一次失败提示继续停留在进行中界面。
第 59 课:重试开始时清除旧失败提示
- 日期:2026-09-23
- 课程序号:第 59 课
- 知识点:重试开始时复位界面错误提示
用途或适用场景
用户点击“重试关闭”后,不让上一次失败提示继续停留在进行中界面。
核心概念
只清空界面状态 errorMessage,不写入 Handle 的 closed;真实关闭结果仍由 handle.close() 决定。
最小代码或操作示例
在第 58 课保留的 ClosePage.close() 中,于防重入判断之后加入一行:
ts
async close(): Promise<void> {
if (this.closing || this.handle.isClosed()) return
this.errorMessage = ''
this.closing = true
try { await this.handle.close() }
catch {
this.errorMessage = '关闭失败,请重试'
console.error('Handle.close failed')
} finally { this.closing = false }
}3~5 分钟练习
第一次关闭失败后立即重试,观察旧提示何时消失;再让第二次也失败。
参考答案
点击重试即清空旧提示;若第二次仍失败,catch 再显示一条新的通用提示。
与上一课的联系
继承第 58 课的“重试关闭”按钮与第 57 课的 close();本课只在新的尝试开始时清空旧 errorMessage;完成后下一课可分别呈现成功与失败结果。
时效校验
时效校验:2026-09-24(华为当前 Button、Text 文档及 Promise 异步操作资料;本机 HarmonyOS 26.0.0/API 26 SDK)。继续使用已核对的 onClick、Text 与 ArkTS Promise,未使用废弃接口。