收藏
回答

在onload页面调用async函数后,需要该函数里的一个数据,但是onload加载完了才能等到?

在onload页面调用async函数后,需要该函数里的一个数据,但是onload加载完了才能等到数据打印出来,需要这一数据的程序语句在async函数的数据传过来之前已经被执行完了,不是想要的结果,,,,,,totalexamNum(默认为0)是totalAsync()函数传过来的值(在改函数中可以打印输出),但是在下面的for语句中totalexamNum始终为0,请问该如何解决呢?

onLoad: function (options) {


let that = this

var receive = that.totalAsync().then(res => {

// res就是结果数组

console.log( res);

}).catch(rej => {

console.log(rej);

})


for(let i = ; i < 100; i++) {

Arr[i] = Math.floor(Math.random()*(totalexamNum))

}

}

回答关注问题邀请回答
收藏

1 个回答

  • 子不语
    子不语
    2019-12-27

    问题是,你 totalexamNum 没赋值啊,不为0应该为多少?

    2019-12-27
    赞同
    回复 11
    • stm8l101
      stm8l101
      2019-12-27
      async totalAsync() {
           
          const MAX_LIMIT = 20;

            //先取出集合记录总数
            console.log('2222');
            const countResult = await db.collection('EXAM').count();
            const total = countResult.total;
            console.log('total:', total);
            totalexamNum=total;
      }
      我可能没说明白 ,在async函数里赋值了,
      2019-12-27
      回复
    • stm8l101
      stm8l101
      2019-12-27
      在js页面最前面赋值  var totalexamNum=0;
      2019-12-27
      回复
    • 子不语
      子不语
      2019-12-27回复stm8l101
      同一个js文件吗?有打印 total: 吗?
      2019-12-27
      回复
    • stm8l101
      stm8l101
      2019-12-27
      是的同一个js,也有打印
      2019-12-27
      回复
    • 子不语
      子不语
      2019-12-27回复stm8l101
      total的值对么?不对……这不对……卧槽,循环100也是很快的。你应该等数据好了之后,再去for
      2019-12-27
      回复
    查看更多(6)
登录 后发表内容
问题标签