/**
* Created by liyinghao on 2016/11/6.
*/
const fs = require('fs');
/*
* 新建一个Promise对象,Promise就是一个容器,里面放置一个异步执行的API
* */
const p1 = new Promise((resolve, reject)=>{
fs.readFile('./a.txt','utf8',(err,data)=>{
if(err){
/*
* 容器中异步任务失败之后调用reject方法,把错误对象传递给reject,同时终止程序的执行
* */
return reject(err);
}
/*
* 容器中的异步任务成功之后调用resolve方法,把结果传递给resolve方法
* */
resolve(data);
})
});
const p2 = new Promise((resolve,reject)=>{
fs.readFile('./b.txt','utf8',(err,data)=>{
if(err){
return reject(err);
}else{
resolve(data);
}
})
});
/*
* promise对象一经创建,立即执行,可以通过执行创建的promise对象的then方法获取resolve方法中的值,
* then方法需要一个回调函数,回调函数就是resolve方法
* */
p1.then(data=>{
console.log(data);
return p2;
/*
* 返回一个promise继续进行链式调用
* */
}).then(data=>{
console.log(data);
})
/*
* catch方法可以把之前任务中所有可能遇到的错误都捕获到
* */
.catch(err=>{
throw err;
});