当前位置:首页 > 技术分析 > 正文内容

再谈JS的async/await_js async defer

ruisui884个月前 (02-14)技术分析17

开发JS的程序员都知道,JS天生异步,耗时函数都是异步回调。有哪些是耗时函数?字面意思,就是耗时间的函数,比如:setTimeout,fetch,fs.readFile等,主线程中不建议使用同步函数。

async/await是把异步变同步?它只是简化异步代码,在函数内部类似同步函数,其实还是异步,用await去等待实现同步的效果。所以他只用在函数内部,这样不会阻碍主线程的运行。

async function main(){
    await fetch('https://www.baidu.com');
    console.log('Hello World!');
}

main();
console.log('haha');

上面程序会先显示haha后显示Hello World,main函数不会阻塞整个程序的运行。机制类似于某些语言的“协程”利用事件循环机制来处理后续的回调。

JS中还有一种并发运行的方式就是Workers

const worker = new Worker('worker.js');

主线程是master,可以开启多个worker,worker之间是互相隔离的,但可以通过主线程转发消息。Worker是独立线程,所以会消耗更多的系统资源。

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/1955.html

标签: aysnc
分享给朋友:

“再谈JS的async/await_js async defer” 的相关文章

vue:组件中之间的传值

一、父子组件之间的传值----props/$emit1、父组件向子组件传值--props2.子组件想父组件传值-this.$emit('select',item)二、父组件向下(深层)子组件传值----provide/injectprovide:Object | () => O...

前后端分离自动化运维平台开发

运维平台采用前后端分离:前端vue,框架vue-element-admin;后端python,框架django-rest-framework.目前运维平台模块如下:1、 CMDB管理应用管理、环境管理、开发语言管理、产品项目管理、资产管理2、 构建发布持续构建、持续部署、Jar工程依赖构建3、 容器...

Vue从入门到实践 丨Vue-router基本使用

1. 什么是 vue-routervue-router 是 vue.js 官方给出的路由解决方案。它只能结合 vue 项目进行使用,能够轻松的管理 SPA 项目中组件的切换。vue-router 的官方文档地址:https://router.vuejs.org/zh/2. vue-router 安装...

Vue Router 4 路由操作 - 路由导航

路由导航分为 声明式导航 和 编程式导航。通过 <router-link to="..."> 标签跳转的方式为声明式导航。通过 路由实例对象(router.push(...))跳转的为编程式导航。导航到不同的位置想要导航到不同的URL,使用 router.push 方法。...

three.js cannon.js物理引擎之齿轮动画

今天继续说一说cannon.js物理引擎,并用之前已经学习过的知识实现一个小动画,知识点包括ConvexPolyhedron多边形、Shape几何体、Body刚体、HingeConstraint铰链约束等等知识。因为我之前用纯three.js 的THREEBSP实现过一个静态的齿轮,现在就想配合ca...

电机中“同步”、“异步”的区别到底在哪?

想要了解同步和异步的区别和工作原理必须知道“同步”是啥?定子电流产生的旋转磁场绑在(把磁场想象成一个实物)转子这块磁铁或电磁铁,一起“嗨”起来,两者速度相同...“异步”是啥?定子电流产生的旋转磁场自带几把刷子,旋转的时候对着转子一顿狂刷,利用“摩擦摩擦”将转子带起来,两者速度不同,产生差异(转差率...