最近发现身边的同学对js的异步流程不是很熟悉,在这里我就来讲一下自己对异步的了解。
首先要明确JS是一门单线程语言,因为js是运行在浏览器的渲染主线程中,而渲染主线程只有一个。
当我们在主线程任务中开启异步时,主线程会将该任务交给其他线程去处理,自身立即结束对该任务的执行,转而执行其他的任务。当异步任务完成时,将事先传递的回调函数包装成任务,加入到消息队列的末尾排队,等待主线程调度执行。下面是开启一个记时任务的流程图
例:
const fuc1 = ()=> { return '异步完成' }; const fuc2 = async()=>{ let a=await fuc1(); console.log(a) console.log('异步后的步骤') } fuc2(); console.log('正常结束')
结果:先输出正常结束,在输出a(异步完成),最后输出异步后的步骤。
JavaScrip中的异步编程
于 2024-07-11 21:53:23 首次发布