promise异步队列化
promise异步队列化,使代码更简洁,可读性更高
1.常见的异步程序主要有
- 定时器
- 事件绑定
- AJAX
2.promise的使用
首先需要创建一个promise对象,promise对象中有两个参数,若成功就调用resolve方法,失败调用reject方法
const promise = new Promise((resolve, reject)=>{
console.log('promise的函数执行了...');
// 执行异步操作
setTimeout(() => {
console.log('setTimeout执行了.....');
//........
// resolve([1, 2, 3]);
reject(new Error('网络错误'));
}, 1000);
});
对异步函数产生的回调函数使用.then()方法进行操作
promise.then(
// resolve状态执行
(data)=>{
console.log('回调1执行了....');
console.log(data);
},
//reject状态执行
(err)=>{
console.log('回调2执行了....');
console.log(err);
}
);
也可以使用.catch方法对失败的错误信息进行捕捉
.catch((error)=>{
console.log(error);
})
promise 的一个常见的面试题
console.log(1);
let p = new Promise((resolve, reject)=>{
console.log(2);
'fasdfasdfasd'.map();
resolve('success');
console.log(3);
});
console.log(4);
p
.then((data)=>{
console.log(5);
// console.log('then执行了:', data);
// return Promise.resolve(data);
// return Promise.reject(data);
})
.then((data)=>{
console.log('then执行了:', data);
})
.catch((error)=>{
console.log(6);
console.log('catch执行了:', error);
})
console.log(7);
结果为: 123475
自己学习的小总结,感觉知识有些零散,希望自己以后可以有更好的总结