nodeJS异步操作
1、promise
const fs = require("fs")
// 创建promise,使用链式调用解决回调函数的回调地狱问题
let delFilePromise = () => {
return new Promise((resolve, reject) => {
fs.unlink("./test/test.js", (err, data) => {
if (err) {
reject("failed")
} else {
resolve("success")
}
})
})
}
delFilePromise().then(msg => {
console.log(`resolve:${msg}`)
}, err => {
console.loeject:${err}`)
})
2、promise改造node文件删除处理的检测
const fs = require("fs")
let hasFile = () => {
return new Promise((resolve, reject) => {
//检测文件是否存在
fs.stat("./test/test.js", (err, msg) => {
if (err) {
reject("文件不存在")
} else {
resolve("文件存在")
}
})
})
}
let delFile = () => {
return new Promise((resolve, reject) => {
fs.unlink("./test/test.js", (err, data) => {
if (err) {
reject("删除失败")
} else {
resolve("删除成功")
}
})
})
}
// 第一个then是检测文件的结果处理
// 第二个then是第一个then中返回的删除文件的结构处理
hasFile().then(msg => {
console.log(`文件存在处理:${msg}`)
return delFile()
}).then(msg => {
console.log(`文件删除成功处理:${msg}`)
}).catch(err => {
console.log(`错误处理:${err}`)
})
问题:如何手动终止promise的链式调用?
抛出错误,throw new Error()即可