async 函数JavaScript 最优异步

本文探讨了JavaScript中异步编程的发展,从回调函数到Promise,再到ES7引入的async/await。async函数使得开发者可以使用同步的写法处理异步操作,简化了异步代码的阅读和编写,同时通过catch或try...catch处理异常。虽然async/await的浏览器兼容性仍是个问题,但它已经成为现代JavaScript开发中的优选解决方案。
摘要由CSDN通过智能技术生成

新事物的诞生并被肯定,其中一定经历了时代的磨砺和市场的不断验证;
es7 推出async 异步方法,让端开发人员用同步的思想去使用异步,从此开发bug和工作量大大减少;因为我们更习惯叫JavaScript是顺序加载的语言就是从下到下依次运行

异步出现

JavaScript执行环境一直都是单线程
单线程是指:一次只能执行一个任务。如果有多个任务,没办法只能排队,等待上一个任务完成,才可以继续,就这样在等待中执行完所有代码任务;
好处和问题相继出现
执行环境相对简单,实现代码也比较容易,但是坏处也随着而来,一个地方实现不顺畅或者实现时间太长,后面的任务就要排队等候,出现假死(整个浏览器无响应)
异步的出现
为了解决上述问题,聪明的人类就给JavaScript 开创出了新的运行机制;那些耗时、等待时间较长的让它自己去执行,其他的任务也可继续执行;已是JavaScript推出了两种执行模式:同步(Synchronous)和异步(Asynchronous)
异步(也叫非阻塞加载)的推出让JavaScript 踏上了光辉之路

异步的变迁

回调函数

这是异步最简单的方法
看一个同步记载的例子

console.log('1');
alert('2');
console.log('3');

同步打印1,弹出2,打印3,取决于按下‘确定’框的时间,不按就一直卡顿在那
那么如何做不等待第2部弹框,继续执行,早期方法回调函数

function f1(callback){
   
  setTimeout(function(){
   
    callback();
  },1000)
}
function f2(){
   
   alert('2');
}
console.log('1');
f1(f2); 
console.log('3');

这样所有的任务就是该干嘛就干嘛去,互不影响,程序得以执行,早期推行回调方法执行异步,比如图片加载,接口请求用的不亦乐乎;毕竟不影响我们继续执行后面的代码,不影响网页加载。
但是人们心里还是比较挂念,同步的写法,回调方法固然能解决问题,但是繁琐,如这样的f1(f2)调用费解 ,于是 es6推出Promises对象,友好的操作

Promises 操作异步

Promises,每一个异步任务返回一个Promise对象,该对象有一个then方法,允许指定回调函数。比如,f1的回调函数f2,可以写成:

f1().then(f2)

对比一下原来的 f1(f2) 看上去更加直观,那么整个异步怎么实现的呢?
实现一下

function f1(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值