前端面试-异步和单线程

火腿肠烧烤大赛冠军 火腿肠烧烤大赛冠军     2022-12-18     669

关键词:

javaScript 宏任务与微任务
promise 深究

异步原因


再比如加载图片、

让他先去加载 然后我继续执行下面的,好了我再回来

promise


注意:catch正常也返回resolved

执行顺序为123

async await

async函数返回一个promise
await相当于一个函数的then(如果失败了就需要try catch来捕捉 否则不会走)

重要实例:

await后面几行都会被看成异步

for。。。of

实现异步循环:

宏任务微任务



在每一次轮询结束之后,都会触发一次DOM渲染
然后再触发eventLoop
小TIP:


微任务放在为任务队列中
宏任务放在宏任务队列中

执行顺序:

前端的异步解决方案(面试常考)

...务。这种执行模式实现简单,执行环境相对单纯。但随着前端业务日渐复杂,事务和请求等日渐增多,这种单线程执行方式在复杂的业务下势必效率低下,只要有一个任务耗时很长,后面的任务都必须排队等着,会拖延整个程序... 查看详情

重回博客谈一谈node中的异步和单线程

...     第一篇谈论一下最近想的比较多的异步的问题。 传统多线程异步     传统的异步是多线程的,当要同时做两件事的时候,他们是执行在不同的线程里的。这 查看详情

前端面试题总结(代码片段)

1.事件轮询所有的同步任务都在主线程执行,形成一个执行栈主线程之外存在一个任务队列,任务队列中用于放置异步任务一旦执行栈中的所有的同步任务都执行完了,系统就会读取任务队列主线程不断地重复第三步2... 查看详情

前端排序算法总结;前端面试题2.0;javascript异步编程

1、前端排序算法总结排序算法可能是你学编程第一个学习的算法,还记得冒泡吗?当然,排序和查找两类算法是面试的热门选项。如果你是一个会写快排的程序猿,面试官在比较你和一个连快排都不会写的人的时候,会优先选... 查看详情

一天时间迅速准备前端面试|javascript——异步进阶(代码片段)

...面试文章,总结多年的面试经历,带你快速建立前端面试知识体系。抓住每一场面试的机会,知己知彼才能百战百胜!上期回顾JS基础–异步本系列订阅一天时间迅速准备前端面试(高薪精品)–欢迎订阅... 查看详情

简单多线程和单例学习例一(代码片段)

这是一个简单的面试题:  写一个简单的单例和多线程结合的例子;代码:单例代码:    publicclassSingletonprivateinti=0;//在类内部实例化单例,将会在虚拟机启动加载类的时候加载该静态实例privatestaticSingletonsingleton=newSingleton();//自... 查看详情

前端面试,备考第15天-异步编程:promise|async/await|定时器|扩展

⭐️本文首发自前端修罗场(点击加入社区),一个专注Web技术、问题答疑、面试辅导、职业发展的专业社区。 查看详情

阿里前端面试题(1)——解构/异步/markdown语法解析

参考技术Aa.不完全解构,也会成功,不会报错b.只要支持Iterator接口,都可以被解构赋值c.null可以替代默认值,而成功的解构赋值d.解构中不定参数可以出现在除第一个以外的其他位置e.解构是先找到同名属性,然后再赋给对应的... 查看详情

前端技能树,面试复习第55天——代码输出:同步异步任务|事件循环(代码片段)

1console.log(1);setTimeout(()=>console.log(2);setTimeout(( 查看详情

前端技能树,面试复习第42天——浏览器原理:事件机制|执行栈|同步与异步

⭐️本文首发自前端修罗场(点击加入社区,参与学习打卡,获取奖励),是一个由资深开发者独立运行的专业技术社区,我专注Web技术、区块链、Web3、答疑解惑、面试辅导以及职业发展。 查看详情

关于面试中异步与延时执行顺序的预期结果问题(代码片段)

理解同步与异步的概念(看第一个图)宏任务与微任务,简单说主线程上的最外层代码块就是宏任务(包括Promise和setTimeout),如果最外层代码块是异步任务,那么它内部的任务就是微任务宏任务与微任务相当于主线程和子线程的... 查看详情

使用线程池和单线程

 /***使用线程池和单线程**/publicclassTestTask{publicstaticvoidmain(String[]args)throwsInterruptedException{longcurrentTimeMillis=System.currentTimeMillis();System.out.println("currentTimeMillis:"+currentT 查看详情

面试官:小伙子,说一下多线程异步编排和线程池吧(代码片段)

1.java内存模型注:JAVA中的堆栈和内存模型:,1.1内存模型:Java内存模型是围绕着在并发过程中如何处理原子性、可见性和有序性来建立的(三个特性详解见10.)a.Java内存模型将内存分为了主内存和工作内存b.Java内存模型规定所有的变量... 查看详情

面试官:小伙子,说一下多线程异步编排和线程池吧(代码片段)

1.java内存模型注:JAVA中的堆栈和内存模型:,1.1内存模型:Java内存模型是围绕着在并发过程中如何处理原子性、可见性和有序性来建立的(三个特性详解见10.)a.Java内存模型将内存分为了主内存和工作内存b.Java内存模型规定所有的变量... 查看详情

多线程和单线程代码维护

】多线程和单线程代码维护【英文标题】:Multithreadedandsinglethreadedcodemaintenance【发布时间】:2019-06-1108:43:03【问题描述】:我有一个应用程序,我想使用多线程(通过OpenMP)或单线程运行。我有一个#defineMTtrue//iftrue,thenmultithreaded... 查看详情

js同步异步执行顺序settimeout面试题分析

<script>for(vari=0;i<2;i++){setTimeout(function(){console.log(i);},0);}</script>  //结果:2,2打印两个2而不是0,1,跟js执行顺序有关系。所有的任务分为两种,一种是同步任务,一种是异步任务。同步任务是指在主线程上排队的任务... 查看详情

005_讨论多线程和单线程

一、SingleThreadNon-BlockingI/O.非阻塞式IO适用于IO密集型,把io阻塞交给linux系统模块(如图中的PosixAsyncThreads)去处理。 二、MultiThreadedServer线程维护和线程上下文切换都会消耗资源。  查看详情

web前端面试高频考点——vue的高级特性(动态组件异步加载keep-alivemixinvuexvue-router)(代码片段)

系列文章目录文章目录系列文章目录一、Vue高级特性1、动态组件2、vue异步加载组件3、vue缓存组件(keep-alive)4、mixin二、Vuex1、Vuex基本概念2、用于Vue组件三、Vue-router1、动态路由2、懒加载一、Vue高级特性1、动态组件按... 查看详情