nodejs点击一次按钮,需要向同一个路由发送多个请求,如何进行请求的处理

示例描述:点击一个按钮,需要清空不同的文件数据。如果直接发起三次路由请求,页面中代码有出现某一次发起全部数据清空操作,所有按钮均失效的情况(也许是特例),连续发送三个请求可能会导致并发请求,从而可能导致服务器过载或响应时间变慢。那么需要将代码进行同步执行。(其中'/deleteData'路由用来接收不同的id确定需要清空什么数据。 )

解答:建议使用Promise.all()或async/await等方法来确保每个请求都完成后再执行下一个请求。

错误示例:

$.post('/deleteData',{id:1},function(res){
})
$.post('/deleteData',{id:10},function(res){
}) 
$.post('/deleteData',{id:100},function(res){
}) 

Promise.all()示例代码:

const promise1 = $.post('/deleteData',{id:1});
const promise2 = $.post('/deleteData',{id:10});
const promise3 = $.post('/deleteData',{id:100});

Promise.all([promise1, promise2, promise3])
  .then(function(results) {
    // 所有请求都完成后执行的回调函数
  })
  .catch(function(error) {
    // 处理错误
  });

async/await示例代码:

// 清空所有结果
  async function deleteData(){
    try{
      const result1 = await $.post('/deleteData',{id:1});
      const result2 = await $.post('/deleteData',{id:10});
      const result3 = await $.post('/deleteData',{id:100});
      // 所有请求都完成后执行的代码
    } catch (error) {
      console.log(err.message);
    }
  }

//调用函数
deleteData();

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值