javascript - 如何在函数注释中描述返回的 promise ?

标签 javascript annotations promise

在编写 JavaScript 代码时,我总是注释我的函数 like described here ,类似于:

/**
 * Add two values
 * @param {Number} a
 * @param {Number} b
 * @returns {Number} the sum of a and b
 */
function add(a, b) {
  return a + b;
}

现在,当我编写返回 Promise 的异步函数时,这将是:

/**
 * Add two values
 * @param {Number} a
 * @param {Number} b
 * @returns {Promise} the sum of a and b
 */
function add(a, b) {
  return new Promise(function (resolve, reject) {
    resolve(a + b);
  });
}

但现在返回类型的描述 ( Promise ) 遗漏了有关 Promise 在解析时将返回什么类型的信息。

如何表示返回的 promise 将以 Number 解决?

我会想 Promise.<Number>是最好的(类似于 Array.<Number> ),但在这方面还没有找到任何常见的做法。

最佳答案

你要的是generics .同时jsdoc doesn't officially support it yet这是处理它的正确方法。

正确的方法是:Promise.<number> .

记录 Promise.<number, Error>在我看来这是毫无意义的,因为 promise 总是会因错误而拒绝——otoh 指定特定的错误可能很有用,但可能有点矫枉过正。您的 promise 是最终数字的盒装值。因此,正确的方法是将其记录下来。

关于javascript - 如何在函数注释中描述返回的 promise ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22610107/

相关文章:

javascript - Angular 文件上传未正确注入(inject)

java - 获取派生类中字段的java注解

reactjs - 无法修复未处理的拒绝错误-

javascript - 从 HTML 挂载中调用 Async 函数

javascript - 多个顺序的 fetch() Promise

javascript - $http post 请求不起作用并发送 "Possible unhandled rejection"错误

javascript - Material UI 多选中的可删除芯片

javascript - 不允许使用 ajax DELETE 方法

kubernetes - 基于注解过滤 kubectl get

java - 如何在没有 xml 的情况下验证使用 @ManagedProperty 注入(inject)的 bean 属性?