JS异步循环处理

​
async preservation() {
      let that = this;
      let prosess = []
      for (let item of this.tablist) {
        await prosess.push(doAsyncOperation(item));
      }
      async function doAsyncOperation(row) {
        // 异步请求
        return axios(url)
      }
      Promise.all(prosess).then((res) => {
         // 处理异步结果
      })
    },

​

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaScript中,可以使用async/await和Promise来实现异步循环直到状态更改。 使用async/await的方式可以让代码看起来更加简洁和易懂。下面是一个异步循环的示例代码: ```javascript async function waitUntilStatusChanges() { while (true) { const status = await getStatus(); if (status === 'changed') { console.log('Status changed!'); break; } console.log('Status not yet changed'); await sleep(1000); // 等待1秒钟 } } async function getStatus() { // 异步获取状态的代码 } function sleep(ms) { return new Promise(resolve => setTimeout(resolve, ms)); } ``` 在上面的代码中,我们使用`async/await`来等待异步函数`getStatus()`的返回结果。如果状态没有改变,我们会等待1秒钟,并再次调用`getStatus()`。如果状态已经改变,我们会打印`Status changed!`并跳出循环。 另外,我们还编写了一个`sleep()`函数来等待1秒钟。这个函数返回一个Promise,等待指定的时间后再resolve。 如果您不想使用`async/await`,可以使用Promise来实现异步循环。下面是一个使用Promise的示例代码: ```javascript function waitUntilStatusChanges() { return new Promise((resolve, reject) => { const checkStatus = () => { getStatus() .then(status => { if (status === 'changed') { console.log('Status changed!'); resolve(); } else { console.log('Status not yet changed'); setTimeout(checkStatus, 1000); // 等待1秒钟 } }) .catch(error => reject(error)); }; checkStatus(); }); } function getStatus() { // 异步获取状态的代码 } ``` 在上面的代码中,我们使用一个递归函数`checkStatus()`来等待异步函数`getStatus()`的返回结果。如果状态没有改变,我们会等待1秒钟,并再次调用`checkStatus()`。如果状态已经改变,我们会resolve Promise。 总的来说,无论是使用async/await还是Promise,JavaScript都可以实现异步循环直到状态更改的需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值