1.then()接收的参数是一个回调函数,那就是一个函数。
2.reject()和reslove()用于定义状态,实际上用于传递参数。上一次说过,这两个方法用于向下一个promise对象的函数传递相应的参数。
3.reslove如果reslove(value),可以向下传递一个一个值。也可以reslove(promise),同时也可以传递一个promise对象。
4.链式调用多个逻辑的时候,需要向下传递一个promise对象
5.传递的值只需在开始时定义一次,便会执行到底
下面一个用例:按照一定的顺序,异步调用多个文件,
var pro = new Promise(
(reslove,reject)=>{
fs.readFile('1.txt','utf8',(err,data)=>{
console.log(data)
reject(err)
})
reslove(pro),//定义传递的值
}).then(
(obj)=>{//obj作为入参用来接收pro
fs.readFile('3.txt','utf8',(err,data)=>{
console.log(data)
})
}).then(
(obj)=>{//这里也是接收pro
fs.readFile('2.txt','utf8',(err,data)=>{
console.log(data)
})
}).catch(
(e)=>{
throw new Error('没有这个文件!请检查!'+e)
})
有点小问题,那就是出现异常的时候,catch不能捕获。原因在找。