一、概述:
Promise对象用于表示一个异步操作得完成(或失败),以及其结果。
二、语法:
创建Promise实例:
let a = new Promise((resolve,reject)=>{//执行函数 })
或 let a = new Promise( function(resolve, reject) {...} /* executor */ );
通过then catch调用
a.then((value)=>console.log('代码正常运行'));//响应resolve函数
a.catch(error=>{console.log('代码出错')});//响应reject函数,或者程序运行时出错
三、示例:
1、let a = new Promise((resolve,reject)=>{ /* executor 执行函数*/
throw('error')//or reject('error') //失败
});
a.then((value)=>{
console.log(value);
});
a.catch((error)=>{
console.log(error);
});
结果: error
2、let a = new Promise((resolve,reject)=>{
resolve('hello');//成功,程序正常执行
});
a.then((value)=>{
console.log(value);
});
a.catch((error)=>{
console.log(error);
});
结果: hello
说明:
Promise对象有关键字new以及其构造函数来创建,改构建函数会把一个叫做“处理函数”(executor function)的函数作为它的参数,这个函数接受两个函数作为参数——resolve,reject;当异步任务顺利完成时,调用resove,当异步任务失败则调用reject;
四、Promise常用方法
这个方法返回一个新得promise对象,只有iterable中所有得promise对象都成功才会触发成功,一旦有任何一个iterable里面的promise对象失败则立即触发该promise对象的失败且返回第一个触发失败得Promise对象错误信息。个新的promise对象在触发成功状态以后,会把一个包含iterable里所有promise返回值的数组作为成功回调的返回值,顺序跟iterable的顺序保持一致。常用于处理多个promise对象得状态集合。
实例:
成功示例:
let p1 = new Promise((resolve)=>{
resolve(1);
})
let p2 = new Promise((resolve)=>{
resolve(2);
})
let p3 = new Promise((resolve)=>{
resolve(3);
})
Promise.all([p1,p2,p3]).then((values)=>{
console.log(values);
})
结果: [1, 2, 3]
失败示例:
let p1 = new Promise((resolve)=>{
resolve(1);
})
let p2 = new Promise((resolve)=>{
resolve(2);
})
let p3 = new Promise((resolve,reject)=>{
reject('failed');
})
Promise.all([p1,p2,p3]).then((values)=>{
console.log(values);
}).catch((error)=>{
console.log(error)
})
结果:failed
当iterable参数里的任意一个子promise被成功或失败后,父promise马上也会用子promise的成功返回值或失败详情作为参数调用父promise绑定的相应句柄,并返回该promise对象。
返回一个状态由给定value决定的Promise对象。
返回一个状态为失败的Promise对象,并将给定的失败信息传递给对应的处理方法

本文深入解析Promise对象的概念,包括创建方式、基本语法及如何通过then和catch进行结果处理。同时,详细介绍了Promise.all和Promise.race等常用方法的应用场景与实例。
1029

被折叠的 条评论
为什么被折叠?



