繁体   English   中英

Node.js用Promise调用异步函数

[英]Nodejs calling async function with promise

不太确定我是否了解异步诺言,但是我不应该可以在没有.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)
  })
)

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

const result = await asyncFunction();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM