nodeJS異步操作

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章