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()即可