科学健康资讯 · 内容仅供参考,不替代专业诊疗 联系我们|疾病百科
操作系统

queueuserworkitem

2023-05-01 操作系统 本文链接

前端每日干货

队列是什么?如何理解前端与队列?

队列相信大家都或多或少都听过,也用过了。

它是一个先进先出的数据结构,虽然在JavaScript中没有队列,但可以用Array实现队列的所有功能。

先来举一个例子:

const queue = [];

queue.push(1);

queue.push(2);

const item1 = queue.shift(); // 1

const item2 = queue.shift(); // 2

通过这个例子,大家应该对队列不陌生了。

接下来聊一下前端与队列。

说到前端不得不提,事件循环与任务队列的那点关系。

写JS的对Event Loop不陌生。

JS引擎从任务队列( Callback Queue)中拿任务(比如onClick/onLoad等)进行处理。

JS是单线程的,所以每次它只能处理一个事件。

当这个任务是一个异步(如setTimeout)的时候,它会将这个异步任务丢给WebAPI来执行。

丢完之后,继续执行队列中下一个任务,当WebAPI执行异步任务完成之后,会把回调JS放到 任务队列( Callback Queue)中。

这个整个过程就是Event Loop。

来一道关于异步的面试题:

setTimeout(() => console.log(1), 0);

console.log(2);

搞懂了JS中的事件循环,这段代码的运行结果就很容易回答出了。

2

1

好了,关于队列就先说到这里,后续还会给大家分享一些关于队列的应用。

本文内容仅供健康科普参考,不能替代专业医疗诊断和治疗建议。如有身体不适,请及时就医并遵从医师指导。

相关阅读