0

我正在查看https://guides.codepath.com/nodejs/Control-flow#1-introduction

// Consuming a promise API
let promise = fs.promise.readFile(__filename)
promise.then(result => {}, err => {})

// Returning promises
readFile(name) {
  return fs.promise.readFile(path.join(__dirname, name))
}

关于:

fs.promise.readFile

我熟悉 fs.readfile ( https://nodejs.org/api/fs.html#fs_fs_readfile_path_options_callback ),但是关于将承诺插入预先存在的函数的规则是什么。

4

1 回答 1

1

将承诺插入预先存在的功能的规则是什么

您可以在任何函数中使用基于 Promise 的逻辑。本身没有特定的“规则”。但是,如果您希望调用者知道基于 Promise 的异步操作何时完成或者它们是否有错误,那么您必须从您的函数中返回 Promise,以便调用者可以使用.then().catch()访问完成、结果或错误。

async函数是一种特殊类型的函数,它总是返回一个 Promise,并允许您await在函数内部使用 Promise 来简化编程。

在您问题的代码示例中,它是fs.promises.readFile,不是fs.promise.readFilefs.promises有许多fs返回承诺而不是使用普通回调的模块函数的新版本。

您的代码示例应该是:

// Returning promises
readFile(name) {
  return fs.promises.readFile(path.join(__dirname, name))
}
于 2021-01-14T23:53:13.993 回答