异步发展历史(一)Promise初识

六维世界 2022-05-11 15:32:32
  1. Promise能解决回调地狱不便于阅读和修改的问题,关于什么是回调地狱,举个简单的?

    使用了node.js中的一些模块,fs模块用来读写文件

    my.txt => 内部写的是‘smy.txt'

    smy.txt => 内部写的是'my name is miaoyu'

2.Promise可以做到,在多个异步调用全部完毕后或者有任意一个完毕后进行某些处理,可以控制做处理的时刻



Promise初识

异步调用有三种状态,分别为等待状态、失败状态和成功状态

首先我们来创建一个Promise

Promise是ES6提供的一个类,我们首先new一个Promise的实例化对象

resolve和reject方法只能这行一个,其中一个执行同时会默认禁止另一个执行,举个?

这个时候执行的是resolve,另一个方法reject并没有执行,因为resolve在reject之前,先执行

如果我们换一下顺序

所以我们经常会这样来用Promise

如果我们在Promise.then()函数里再有return的数据,会被传递到下一个then()函数中,这就是Promise的链式写法

如果then中返回值是一个Promise,那么会将Promise的结果也继续传递到第二个then中

Promise的catch写法就是把Promise链上的所有的error都提取出来放到一个catch方法里,这样就大大简化了Promise的写法



关于Promise的运行过程

我们刚才讲过,Promise有三种状态,分别是pending,resolve和reject

pending等待态,默认的,这种状态下promise什么都不会做,静等异步返回成功或者失败

promise会在状态改变之后执行then(),所以就会看到我们代码的样子

友情链接