热搜:前端 nest neovim nvim

javascript阻塞(js阻塞执行代码)

lxf2023-02-26 11:48:01

如何使用JavaScript实现异步任务队列,并依次处理队列中的所有任务?本文介绍了JavaScript 阻塞方法实现异步任务队列的方法。

javascript阻塞(js阻塞执行代码)

问题

需要实现异步任务队列,并依次处理队列中的所有任务,具体如下:

  • 随机时间将异步任务增加到队列中

  • 队列中的任务按照先进先出的规则依次执行

  • 任务是异步请求,一个执行完成后再执行下一个

使用Java语言的BlockingQueue很容易实现这一需求,但JavaScript没有锁定机制,实现起来也不那么容易。

方案一

很容易想到使用同步非阻塞方案,每隔一定时间检查队列中是否有任务,然后取出第一个处理。这里的间隔间隔是500毫秒,使用settimeout模拟异步请求。