概念:
Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理且更强大。它最早由社区提出并实现,ES6将其写进了语言标准,统一了用法,并原生提供了Promise对象。
解决异步地狱,本质就是一个构造函数。
异步同步化
结果: 失败或者成功
学习内容:
同步代码
微观代码
宏观代码
0 ### 顺序问题
let p = new Promise((resolve, reject) => {
fs.readFile('./text/bb.text1', (err, data) => {
// 失败
if (err) { reject(err) }
resolve(data)
})
})
p.then((data) => {
console.log(data.toString())
}, (err) => {
console.log(11, err)
})
p里面的是同步的话。先改变p的promise状态
p里面是异步的话 ,就先执行 then方法,改变resolve(data)改变方法后执行。
改变状态才能回调函数
1 抛出错误
2 返回值非promise 对象;
r,返回 return 的结果 成功的状态
3 返回promise对象
4 串联多个操作任务
等1秒钟之后,状态才为成功,成功之后执行回调函数;
5:异常穿透
最好的catch捕捉就可以了
中端 promise 链
只有一个方式:返回promise 对象的状态为pending即使没有成功和失败的状态。