HarmonyOS Promise 重复执行,不执行

用变量保存下一个 promise,不进行第二次new,

点按钮去执行 pp.then() 或 await pp;

结果promise执行体只执行了一次;

下方是,我的试例代码,log只打印一次,更复杂的情形一样;

pp: Promise<void> = this.ttest();

ttest(): Promise<void> {
  return new Promise(async (resolve: Function, reject: Function) => {
  console.log(`title ${util.generateRandomUUID(false)}`);
});
}
HarmonyOS
2024-12-27 16:03:44
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
FengTianYa

在提供的代码中,pp 变量被赋值为 this.ttest() 的返回值,也就是一个 Promise 对象。由于 Promise 一旦解决(resolved)或拒绝(rejected)后就不会再次改变其状态,所以无论多少次调用 pp.then() 或者 await pp,Promise 的执行体(executor function)都只会执行一次。如果希望每次点击按钮时都执行 ttest 函数中的代码,不应该在 ttest 函数中返回一个新的 Promise,而是应该每次点击按钮时都调用 ttest 函数,并获取一个新的 Promise 对象。

分享
微博
QQ
微信
回复
2024-12-27 17:53:17
相关问题
HarmonyOS handleTakePicture执行
802浏览 • 1回复 待解决
HarmonyOS zlib.compressFile执行回调
742浏览 • 1回复 待解决
HarmonyOS emitter.off 执行会不会有问题
1464浏览 • 1回复 待解决
HarmonyOS runJavaScript执行时序
1350浏览 • 1回复 待解决
HarmonyOS webview 执行"javascript:" + jsString
645浏览 • 1回复 待解决
HarmonyOS 单测打包执行
1534浏览 • 1回复 待解决