实例方法
then()
类方法
race()/all()/resolve()/reject()
说明
let fs = require('fs');
function read(path) {
return new Promise((resolve,reject)=>{
fs.readFile(path,'utf8',function(err,data) {
if (err) return reject(err);
resolve(data);
});
});
}
// read('./a.txt').then((data)=>{
// console.log(data);
// })
/* 同时读取a.txt,b.txt,读两个文件,相当于并发
//all(),传数组,数组每一个元素都是Promise的一个实例
//都读取成功才调用then()成功方法
Promise.all([read('./a.txt'),read('./b.txt')]).then((res)=>{
console.log(res);
});
*/
// race() 参数中谁的状态先改变直接决定最后race()返回的promise实例状态
//race()是都是成功状态谁先回来,谁调用then();出现一个错误,返回错误
Promise.race([read('./a.txt'),read('./b.txt')]).then((res)=>{
console.log(res);
},()=>{
console.log('error');
});
// resolve() 返回一个成功态的promise实例
Promise.resolve().then(()=>{
console.log(111);
});
// reject() 返回一个失败的promise
Promise.reject().then(()=>{
console.log(111);
},()=>{
console.log('error');
});