首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JavaScript常见的几种异步方式

JavaScript是单线程的且JavaScript在执行环境中维护了一个异步队列,当主线程在任务执行完成以后,然后去检查异步队列中的任务是否需要开始执行。

然而,在平时的搞码中,不可避免的需要用到异步编程,如某段执行代码需要网络请求的数据返回,或者需要等待I/O完成,又或者是依赖前面的执行结果。那么,常用的处理异步方式的编程就是下面这几种:

一、回调函数

先看下面这段代码:

当函数b对函数a有依赖且函数a又是一个比较复杂的操作时,这两个函数的的执行方式就会有问题。所以,我们得改写这段代码。

回调函数的使用场景:

函数b执行需要依赖函数a的执行结果,而函数a又是一个函数比较长的操作,此时为了不影响往下的执行,可以用回调的方式来重新改写函数执行方式。

改写之后,a的代码执行会被推后,不会阻塞到下面代码片段的执行。

回调函数方式的优点在于,简单,容易理解和部署,不好的地方是不利于代码的阅读和维护,各个部分之间高度耦合,流程会混乱,而且每个任务只能指定一个回调函数。

二、事件监听

事件监听的方式不是依赖相对执行顺序,而是依赖事件的触发。例如,a执行到某段代码时,会触发某类时间,时间过后满足b执行的条件时,则b就可以直接监听此类事件。代码如下所示:

事件监听的优点在于比较容易理解,可以绑定多个事件,每个事件可以指定多个回调函数,而且可以去耦合,有利于实现模块化,缺点是整个程序都要变成事件驱动型,运行流程会变得很不清晰。

三、发布/订阅

所的发布者可以看成是消息的中心,往外发布信息,然后,监听者通过订阅对应的消息,在消息发布的时候,就可以知道自己何时需要执行。

这种方式的相较于事件监听的好处是,我们可以通过查看消息中心,了解存在多少信号,每个信号有多少订阅者,从而监控程序的运行。

四、Promise对象

很明显,Promise优点在于,回调函数变成了链式写法,程序的流程可以看得很清楚,而且有一整套的配套方式,可以实现现许多强大的功能。

最后总结一下:

关于异步方式先想到这里,如发现还有什么好的处理的处理方式在给大家分享出来。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180406A044QD00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券