为了账号安全,请及时绑定邮箱和手机立即绑定

如何模拟带有承诺的同步 while 循环?

如何模拟带有承诺的同步 while 循环?

慕村225694 2022-09-29 16:40:21
array.forEach( element => {   let offset = 0;   let numberOfRows = 100;   while (numberOfRows === 100){      getUrls(offset*100, element) // DB query that retrieves rows, more on this below         .then(              //code              )      offset++;   }})getUrls:采用 100n 偏移量的数据库存储过程,返回包含该存储过程结果的承诺我尝试使用 while 循环,然后才意识到它没有等待承诺解决,创建了大量的 getURL 承诺并溢出堆内存。我最终保留了 while 循环,将其全部包装在一个函数中,并承诺将其强制转换为同步代码。有没有更好/替代的方法来做到这一点,比如用承诺模拟一个while循环?什么是成语JS方式?asyncawaitgetUrls
查看完整描述

1 回答

?
MM们

TA贡献1886条经验 获得超2个赞

试试-方式:async


async function myFunc() {

  for (const element of array) {

    let offset = 0;

    let numberOfRows = 100;

    while (numberOfRows === 100){

      const resp = await getUrls(offset*100, element);

      //code

      offset++;

    }

  }

}

请注意,它包含您使用 .respthen


另请注意,外部函数返回 .myFuncPromise


查看完整回答
反对 回复 2022-09-29
  • 1 回答
  • 0 关注
  • 86 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信