利用Promise避免回调地狱
var p1=new Promise(function(resolve,reject){
false.readFile('./data/a.txt','utf-8',function(err,data){
if(err){
//把容器pending状态改为rejected
reject(err)
//reject是then方法的第二个函数
}
else{
resolve(data)
//把容器pending状态改为resolved
//resolved其实就是下一个状态
}
})
})
var p2=new Promise(function(resolve,reject){
false.readFile('./data/a.txt','utf-8',function(err,data){
if(err){
reject(err)
}
else{
resolve(data)
}
})
})
//异步调用,链式编程
p1
.then(function(data){
console.log(data)
return p2
},function(err){
console.log(err)
})
.then(function(data){
console.log(data)
return p2
},function(err){
console.log(err)
})
//此处function即为data
//注意,then方法会自动将return的值实例为一个容器对象,所以返回什么都是可以的,但是没有意义(
//小诗四行
//你的孤独才是最有价值的-
//不需要去逃避,不需要用学习或者玩乐麻醉自己;
//尝试把时间留给内心的声音
//你就会知道,宾朋满座并非优势,能够享受孤独才是一生的财富。