promise使用

基本使用javascript

// new 作了什麼
// 1. 建立一個新的空對象
// 2. 將構造函數中的this指向這個新空對象
// 3. 執行構造函數中的代碼
// 4. 返回這個對象
// 5. 這個對象上有一個__proto__指向構造函數的原型

var promise = new Promise((resolve, reject) => {
    var flag = false
    if (flag) return resolve()
    reject()
})
promise.then((res) => {
    var a = '成功回調'
    console.log(a, 11111)
}, (err) => {
    var b = '失敗回調'
    console.log(b, 22222)
})

  函數封裝java

// new 作了什麼
// 1. 建立一個新的空對象
// 2. 將構造函數中的this指向這個新空對象
// 3. 執行構造函數中的代碼
// 4. 返回這個對象
// 5. 這個對象上有一個__proto__指向構造函數的原型

// 定義一個函數包起來
function promiseTest () {
    var promise = new Promise((resolve, reject) => {
        var flag = false
        if (flag) return resolve()
        reject()
    })
    return promise
}
/* var a = promiseTest()
console.log(a)
a.then((res) => {
    var a = '成功回調'
    console.log(a, 11111)
}, (err) => {
    var b = '失敗回調'
    console.log(b, 22222)
}) */

promiseTest().then((res) => {
    var a = '成功回調'
    console.log(a, 11111)
}, (err) => {
    var b = '失敗回調'
    console.log(b, 22222)
})

  promise讀取文件promise

const fs = require('fs')
const path = require('path')

// 讀取文件成功以後 幫我調用success函數  若是讀取失敗幫我調用fail函數
/*function success () {
    console.log(`成功了`)
}
function fail () {
    console.log(`失敗`)
}
 fs.readFile(path.join(__dirname, './files/1.txt'), 'utf8', (err, data) => {
    if (err) return fail()
    success()
}) */

// 用promise寫
function ReadFilePromise () {
    return new Promise(function(resolve, reject) {
        fs.readFile(path.join(__dirname, './files/1.txt'), 'utf8', (err, data) => {
            if (err) return reject()
            resolve()
        })
    })
}

ReadFilePromise().then((res) => {
    console.log('成功了')
}, (err) => {
    console.log('失敗了')
})

  

const fs = require('fs')
const path = require('path')
// 用promise寫
function ReadFilePromise (name) {
    return new Promise(function(resolve, reject) {
        fs.readFile(path.join(__dirname, `./files/${name}`), 'utf8', (err, data) => {
            if (err) return reject(err)
            resolve(data)
        })
    })
}

ReadFilePromise('1.txt')
.then((res) => {
    console.log(res)
    return ReadFilePromise('2.txt')
})
.then((res) => {
    console.log(res)
    return ReadFilePromise('3.txt')
})
.then((res) => {
    console.log(res)
})
.catch(err => {
    console.log(err)
})
相關文章
相關標籤/搜索