我有一些返回promise对象的代码,例如,为NodeJ使用Q库.

var Q = require('q');

/**
 * @returns ???
 */
function task(err) {
    return err? Q.reject(new Error('Some error')) : Q.resolve('Some result');
}

如何使用JSDoc记录这样的返回值?

推荐答案

即使它们在Javascript中不存在,我发现JSdoc理解"泛型类型".

因此,您可以定义自定义类型,然后使用/* @return Promise<MyType> */.下面的结果是一个nice TokenConsume(token) → {Promise.<Token>},带有指向文档中自定义Token类型的链接.

/**
 * @typedef Token
 * @property {bool} valid True if the token is valid.
 * @property {string} id The user id bound to the token.
 */

/**
 * Consume a token
 * @param  {string} token [description]
 * @return {Promise<Token>} A promise to the token.
 */
TokenConsume = function (string) {
  // bla bla
}

它甚至适用于/* @return Promise<MyType|Error> *//* @return Promise<MyType, Error> */.

Node.js相关问答推荐

try 使用Puppeteer抓取Twitter时数组空

CloudTasksClient在Firebase Function % s onDocumentCreated中实例化时导致错误

NPM:无法导入本码模块

Playwright - 无法在 img 标签中使用 file:// 访问本地文件

我的 MERN 网站一直告诉我我的一个函数不是一个函数

如何使用 Node.js 连接到 Cloud SQL?

在 Docker 容器内创建一个 cron 作业(job)来执行 run.js 文件中的函数

如何在Node.js的telegraf.js命令中添加参数?

表达 js 错误处理程序在第一个之后被忽略

如何在 node /快速服务器上配置 mongoDB

为什么 client.on("messageCreate") 的 TextChannel 中缺少 nsfw 属性?

如何在没有 Typescript 的情况下以交互方式使用 Create-React-App?

如何解决这个关于 TaskRunner 的 Node/Express 代码问题?

访问 Mongoose 查询之外的变量

类型中缺少属性,该类型是由类实现的接口

Node.js 变量声明和范围

Node.js + Express 上的多个视图路径

React Native ios build:找不到 node

如何解决'npm应该在 node repl之外运行,在你的普通shell中'

我应该如何在 webpack 中使用时刻时区?