vivo平台激励视频的问题

附上代码:
(这是vivo广告的代码)
//没有广告的时候
if(!this.ad)
{
this.ad = qg.createRewardedVideoAd({
posId:this.REWARDUNITID,
style:{}
})
}
//加载广告
this.ad && this.ad.load()
.catch((err)=>{

    });  
    this.ad && this.ad.onLoad(()=>
    {
        var adshow = this.ad && this.ad.show();
        
        adshow && adshow
        .catch((err)=>{
            fail&&fail();
        })
    })
    
    //监听关闭
    this.ad.onClose(res=>
    {
        if (res && res.isEnded) {
            callback();
            console.log("正常播放结束,可以下发游戏奖励");
        } else {
            fail&&fail();
            console.log("播放中途退出,不下发游戏奖励");
        }
    });
    //监听错误
    this.ad.onError((err)=>
    {
        console.log("广告错误")
        console.log(JSON.stringify(err));
        if(err.errCode==-3)
        {
            qg.showToast({
                message: "上次观看完视频,需要等待一分钟,请稍后再试"
            });
        }
    })

第一次视频成功看完回调没有报错,第二次成功回调如果是查询节点啥的就会报错,错误代码是:
ERROR: Uncaught TypeError: Cannot read property ‘length’ of null, location: /data/user/0/com.vivo.hybrid/app_resource/com.suyu.baike.vivominigame/src/cocos2d-runtime.f5866.js:0:0
STACK:
[0]m@/data/user/0/com.vivo.hybrid/app_resource/com.suyu.baike.vivominigame/src/cocos2d-runtime.f5866.js:1
[1]getComponent@/data/user/0/com.vivo.hybrid/app_resource/com.suyu.baike.vivominigame/src/cocos2d-runtime.f5866.js:1
[2]showChaKanDaAn@/data/user/0/com.vivo.hybrid/app_resource/com.suyu.baike.vivominigame/src/project.5573b.js:1
[3]anonymous@/data/user/0/com.vivo.hybrid/app_resource/com.suyu.baike.vivominigame/src/project.5573b.js:1
[4]anonymous@/data/user/0/com.vivo.hybrid/app_resource/com.suyu.baike.vivominigame/src/project.5573b.js:1
[5]anonymous@(no filename):1
[6]bo@(no filename):1
[7]processInvokeCallback@(no filename):1
[8]Sn.processInvokeCallback.kn.(anonymous function)@(no filename):1
[9]anonymous@(no filename):1

谢谢兄弟的代码,我的视频总是弄不出来