一些promise的知识,现在是否很清楚呢?
- promise有几种状态
- promise的状态是否可以改变?
- promise如何解决回调地狱?
- promise有哪些方法?他们的应用场景是什么?(all/race)
- 如何让promise顺序执行?(async/await)
如果上面的问题,你是比较清楚的,那么你可以去学习其他的知识喽,要是不清楚的话,可以和我一起学习一下!
promise是什么/
实例化一个对象是需要传参数的,promise的要求就是传一个回调函数。
- const promise1=new Promise((resolve,rejecct)=>{});
打印出来就是:pending - const promise2=new Promise((resolve,rejecct)=>resolve());
要是回调函数的话,打印出来就是resolved - const promise3=new Promise((resolve,rejecct)=>reject());
打印出来的结果就是:rejected
下面是一个例子
const promise1=new Promise((resolve,rejecct)=>{});
const promise2=new Promise((resolve,rejecct)=>resolve(1));
const promise3=new Promise((resolve,rejecct)=>reject(2));
//在做2和3 的时候,我们可以用特定的方法
promise3
.then(v=>{
console.log('then');
console.log(v,`v`);
})
.catch(v=>{
console.log('catch');
console.log(v,`v`);
});
在上面的例子中,通过resolve可以进入.then方法,通过reject就会进入到catch进行捕获。
- promise有几种状态
三种 - promise的状态是否可以改变?
是会变得,不过从pending变成resolved或者reject之后就不会再发生变化。 - promise如何解决回调地狱?
then里面可以return promise,来防止回调地狱
例子
request1()
.then(v=>{
console.log('第一层then');
console.log(v,`v`);
return request2();
})
.then(v=>{
console.log('第二层then');
console.log(v,`v`);
return request2();
})
-
promise有哪些方法?他们的应用场景是什么?(all/race)
-
如何让promise顺序执行?(async/await)
async和await是成对出现的,await必须在async的function里面。