/*** 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;});
原文:http://www.cnblogs.com/itlyh/p/6041040.html