ES 6 异步解决方案

本文详细介绍了ES6的异步处理模型,包括两个阶段:未决和已决,以及三种状态:挂起、完成和失败。重点讲解了Promise的基本使用,强调了后续函数必须是异步的,并放入微队列。同时,讨论了async/await关键字,解释了它们如何简化异步代码的编写。
摘要由CSDN通过智能技术生成

写在前面:

    JS 经常会遇到 异步任务, 所谓异步任务,就是需要经过一段时间 当某个时机达到后才能得到结果的任务

   比如:

        - 使用ajax 请求服务器,当服务器完成响应后拿到响应结果

        - 监听按钮是否被点击,当按钮被点击后拿到某个文本框的值

       - 使用 setTimeout() ,等待一段时间后做某一件事

   JS 没有一种标准的模式来处理这种场景,就导致不同的人书写的异步代码方式不一样。

   

ES 6 总结了各种异步场景,并提出一种通用的异步模型

ES6 的异步处理模型

 es6 将异步场景分为两个阶段三种状态

 两个阶段: unsettled(未决) 和  settles (已决)

 三种状态:  pending(挂起)、 resolved(完成)、 rejected(失败)

看下它们的关系图:

当任务处于未决阶段时,它一定时 pending 状态,表示任务从开始 到 拿到结果之间的过程。比如:网络完成了各种配置,也发送了请求,但是请求结果还没有拿到。

当任务处于已决阶段时,它只能是 resolved 和 rejected 两种状态中的一种表示任务有了一个结果。比如:从服务器拿到了数据(resolved),网络不好没有拿到数据(rejected)

任务开始时,始终是未决阶段,那任务如何才能走向已决阶段呢?

ES6 认为任务在未决阶段的时候,有能力将其推向已决。比如:当从服务器拿到数据后,就从未决阶段推向已决的 resolved 状态;如果网络不好,导致出错了,就从未决阶段推向已决的 rejected 状态。

我们把

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值