promise理解:
1,是js异步编程的新的解决方案
2,是一个构造函数
3,用来封装一个异步操作,并可以获得其结果
promise三个状态:
1,pendding 未确定
2,resolved 成功
3,rejected 失败
注:状态只能改变一次,成功数据称为value,失败称为reason
promise的基本使用
为什么要用Promise:
1.指定回调函数的方式灵活,可以在异步任务前指定也可以在异步任务后指定,而以前指定回调函数必须在异步任务开始前指定。
2.支持链式调用,可以解决回调地狱问题
3.回调地狱:回调函数嵌套调用,内层的回调函数需要的条件是外层异步执行的结果。不便于阅读还有异 常处理,
4.解决方案。promise链式调用。
5.最佳解决方案,async/awai(在程序员角度没有回调函数,编译后其实还是会有回调函数)
语法糖
p3.then(null,reason => {})相当于p3.catch( reason =>{} )