Nodejs使用promise

时间:2018-04-15 13:01:24

标签: javascript node.js

我不太清楚我是否已经理解了异步承诺,但我不能在没有.then的情况下调用下面的第一个函数吗?

const fs = require('fs')
const lineReader = require('readline')

exports.isEnglish = async (item) => {
  return new Promise((resolve, reject) => {
    let lr = lineReader.createInterface({
      input: fs.createReadStream('words.txt')
    })
    lr.on('line', (line) => {
      if (item.toLowerCase() === line.toLowerCase()) {
        resolve(true)
      }
    })
    lr.on('end', (line) => {
      reject(false)
    })
  })
}

然后这样称呼它:

const english = require('./index')

console.log(english.isEnglish('ZZZ')
  .then((result) => {
    console.log(result)
  })
  .catch((err) => {
    console.log(err)
  })
)

1 个答案:

答案 0 :(得分:1)

您定义的函数是异步并返回一个promise。 要使用相同的async-await语法调用它,封闭范围需要具有async关键字,然后按以下方式调用该函数:

const result = await asyncFunction();