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(),所以就会看到我们代码的样子