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
7天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
FengTianYa

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

分享
微博
QQ
微信
回复
7天前
相关问题
HarmonyOS handleTakePicture执行
71浏览 • 1回复 待解决
HarmonyOS zlib.compressFile执行回调
126浏览 • 1回复 待解决
HarmonyOS onBackPress执行异常问题
676浏览 • 1回复 待解决
HarmonyOS onBackPress执行异常问题 ?
61浏览 • 0回复 待解决