Promise 异步编程

回调地狱
具体实现
实例
1.使用函数进行封装
2.在promise实例对象中传入要执行的函数
3. 使用then方法进行promise串联
4.解决promise执行中出错的问题
Last updated

Last updated
fs.readFile("a.txt",function(err,data){
if(err){
throw(err)
}
})
fs.readFile("b.txt",function(err,data){
if(err){
throw(err)
}
})
fs.readFile("c.txt",function(err,data){
if(err){
throw(err)
}
})fs.readFile("a.txt",function(err,data){
if(err){
throw(err)
}
fs.readFile("b.txt",function(err,data){
if(err){
throw(err)
}
fs.readFile("a.txt",function(err,data){
if(err){
throw(err)
}
})
})
})var p1=new Promise(function(resolve,reject){
teacher1.save(function(err,data){
if(err){
reject(err)
}
resolve(data)
})
})
p1
.then(
function(){
var query=teacher_Col.where({name:"zpliu"})
query.deleteMany(function(err,data){
if(err){
console.log("删除失败"+err)
}
console.log("删除成功")
})}
)function getFileByPath(filepath){
return new Promise(function(resolve,reject){
fs.readFile(filepath, 'utf-8', (err,data)=>{
if(err){
return reject(err)
}
return resolve(data)
});
})
}getFileByPath("./1.txt")
.then(function(data){
console.log(data);
return getFileByPath("./ID.txt")
})
.then(function(data){
console.log(data)
})getFileByPath("./1.txt")
.then(function(data){
console.log(data);
return getFileByPath("./ID.txt")
},function(err){
console.log(err)
return getFileByPath("./ID.txt")
}) .catch(err=>{
console.log(err);
})