Node回調(diào)函數(shù)改寫

以讀取文件為例,首先,創(chuàng)建文件a.txt,文件內(nèi)寫入內(nèi)容Hello world!。

回調(diào)函數(shù)寫法

const fs = require('fs')
fs.readFile('./a.txt', 'utf-8', (err, data) => {
  if (err) throw err
  console.log(data)
})

Promise寫法

const fs = require('fs')
function getTxt (path) {
  return new Promise((resolve, reject) => {
    fs.readFile(path, 'utf-8', (err, data) => {
      if (err) reject(err)
      resolve(data)
    })
  })
}
getTxt('./a.txt')
  .then(rst => console.log(rst))

bluebird寫法

const Promise = require('bluebird')
const fs = Promise.promisifyAll(require('fs'))
fs.readFileAsync('./a.txt', 'utf-8')
  .then(data => console.log(data))

Generator寫法

const fs = require('fs')
function getTxt (path) {
  return new Promise((resolve, reject) => {
    fs.readFile(path, 'utf-8', (err, data) => {
      if (err) reject(err)
      resolve(data)
    })
  })
}
function * fun () {
  yield getTxt('./a.txt')
}
const run = fun()
run.next().value.then(data => console.log(data))

async/await寫法

const fs = require('fs')
function getTxt (path) {
  return new Promise((resolve, reject) => {
    fs.readFile(path, 'utf-8', (err, data) => {
      if (err) reject(err)
      resolve(data)
    })
  })
}
async function run (params) {
  const file = await getTxt(params)
  console.log(file)
  return file
}
run('./a.txt')
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • async 函數(shù) 含義 ES2017 標(biāo)準(zhǔn)引入了 async 函數(shù),使得異步操作變得更加方便。 async 函數(shù)是...
    huilegezai閱讀 1,313評論 0 6
  • 異步編程對JavaScript語言太重要。Javascript語言的執(zhí)行環(huán)境是“單線程”的,如果沒有異步編程,根本...
    呼呼哥閱讀 7,399評論 5 22
  • 首先看一下下列代碼 var gen = function* (){var a = yield readFile()...
    c菜鳥閱讀 1,717評論 0 1
  • 含義 ES2017標(biāo)準(zhǔn)引入了async函數(shù),使得異步操作變得更加方便.async函數(shù)其實(shí)就是Generator函數(shù)...
    JarvanZ閱讀 597評論 0 0
  • 框架提出的背景 ES6/7帶來的變革 自ES6確定和ES7中async/await開始普及,Node的發(fā)展變得更加...
    宮若石閱讀 8,705評論 1 14

友情鏈接更多精彩內(nèi)容