Promise简单使用
1.Promise含义
Promise 是异步编程的一种解决方案,是一种链式的变成。
一段简单的使用
function helloPromise(ready) {
return new Promise((resolve, reject)=>{
if(ready)
{
resolve('helloPromise');
}
else{
reject('error');
}
});
}
helloPromise(true).then((message)=> {
alert(message);
}, (error)=> {
alert(error);
});
Promise的状态有三种
pending(进行中)
fulfilled(已成功)
rejected(已失败)
then和catch的用法
catch方法是.then(null, rejection)的别名,用于指定发生错误时的回调函数。使用catch写法比一般写法更加清晰。
function helloPromise(ready) {
return new Promise((resolve, reject)=>{
if(ready)
{
resolve('helloPromise');
}
else{
reject('error');
}
});
}
helloPromise(false).then((message)=> {
alert(message);
}).catch((error)=> {
alert(error);
});
Promise.all用于将多个Promise包装成一个新的Promise
Promise.all([p1, p2, p3]);
它们会按照包装的先后顺序依次执行
let p1=new Promise((resolve)=>{
setTimeout(()=>resolve('hello'),2000);
});
let p2=new Promise((resolve)=>{
setTimeout(()=>resolve('promise',1000));
});
Promise.all([p1,p2]).then((message)=>{
console.log(message);
});
Promise.race和Promise.all不同,只要其中有一项Promise执行完成就执行后续操作
let p1=new Promise((resolve)=>{
setTimeout(()=>resolve('hello'),2000);
});
let p2=new Promise((resolve)=>{
setTimeout(()=>resolve('promise',1000));
});
Promise.race([p1,p2]).then((message)=>{
console.log(message);
});
上面代码只返回promise

浙公网安备 33010602011771号