我有一个功能可以检查用户是否看到或需要查看奖励视频,以便能够在我的离子应用中使用某个功能:
let canUseThisFunction = await this.someService.canUseFunction();
if(canUseThisFunction){
console.log("can use");
} else {
console.log("can NOT use");
}
并且检查功能类似于:
canUseFunction(){
let canUse = await this.checkInBackend.checkIfUserHasReward();
if(!canUse){
await this.adService.showRewardVideo();
} else {
return false;
}
}
我遇到的问题是在checkIfUserHasReward()
调用admob.rewardVideo.show()
之后,当奖励视频正在运行时,它只会解析“OK”。
..
this.admob.rewardVideo.config(rewardVideoConfig);
return this.admob.rewardVideo.prepare().then((prepareReward) => {
console.log("prepareReward", prepareReward);
return this.admob.rewardVideo.show();
}).then(rewardShowed => {
console.log("rewardShowed", rewardShowed);
return rewardShowed;
}).catch(e => console.error(e));
我可以使用
获得奖励活动(document as any).addEventListener("admob.rewardvideo.events.REWARD")
但它会在canUseFunction()
之外解析。有没有办法在另一个函数中捕获这个eventListener
?
答案 0 :(得分:0)
您应该使用new Promise
构造函数创建一个可以随意解决的承诺:
return new Promise(resolve => document.addEventListener("...", resolve);