什么是Promise?
ES6提出的异步编程解决方案.
承诺的意思,是一个专门用来解决异步 回调地狱 的问题
回调地狱,其实就是回调函数嵌套过多导致的
当代码成为这个结构以后,已经没有维护的可能了
- 所以我们要把代码写的更加的艺术一些
promise使用语法
// 检测机构
//resolve : 处理异步时成功的状态
//reject : 处理异步时失败的状态
new Promise((resolve,reject) => {
if(处理异步){
resolve([参数]);
}else{
reject([参数]);
}
})
Promise原型对象的方法
- then(([参数]) => {}) : 当Promise对象返回resolve时,可以通过then方法执行后续的操作.
- catch([参数] => {}) : 当promise对象返回reject时,可以通过catch方法执行后续的操作.
处理多个异步
new Promise((resolve,reject) => {
if(处理异步){
resolve([参数]);
}else{
reject([参数]);
}
})
.then(() => {
return new Promise(() => {
})
})
.then(() => {
return new Promise(() => {
})
})
……
.then(() => {
})
Promise的静态方法
Promise.all() 将调用所有的promse对象,全部返回resolve时,该对象才返回resolve。如果有一个promise返回reject时,该对象返回reject
Promise中的三种状态
- resolved(fulfilled) : 成功状态
- pending : 进行中状态
- rejected : 失败状态
这个时候,我们的代码已经改观了很多了
基本已经可以维护了
但是对于一个程序员来说,这个样子是不够的
我们还需要更加的简化代码
所以我们就需要用到一个 es7 的语法了
叫做 async/await