Documentation VSCode:如何记录解决复杂对象的承诺?

Documentation VSCode:如何记录解决复杂对象的承诺?,documentation,visual-studio-code,jsdoc,Documentation,Visual Studio Code,Jsdoc,我有一个函数f,它返回一个Promise。返回的Promise或者resolve({name:String,data:Object})或者reject(Error) 我在VSCode中尝试了以下语法(如中所述),但不起作用: /** * @promise fPromise * @reject {Error} * @fulfill {Object} project * @fulfill {Object} project.data * @fulfill {String} project.n

我有一个函数
f
,它返回一个
Promise
。返回的
Promise
或者
resolve({name:String,data:Object})
或者
reject(Error)

我在VSCode中尝试了以下语法(如中所述),但不起作用:

/**
 * @promise fPromise
 * @reject {Error}
 * @fulfill {Object} project
 * @fulfill {Object} project.data
 * @fulfill {String} project.name
 * @returns fPromise
*/

为了尽可能清楚,为什么不把对象的性质放在一行来描述呢?这应该是对这一点的描述

/**
 * @promise fPromise
 * @fulfill {Object} A project object with the format {name: String, data: Object}
 * @reject {Error}
 * @returns fPromise
*/
或者,如果要处理动态生成的对象键,类似于:

/**
*@promise fPromise
*@fully{Object.}
*@reject{Error}
*@fPromise
*/
这样,任何阅读您的注释的人都可以理解返回的对象的外观、键是什么以及每个键中应该包含什么类型的值


除非,你想说它可以返回三种可能性中的任何一种。然后,我认为您的原始格式更能描述履行承诺的可能结果。

我认为您最好将
履行
响应包装到自定义对象中:

/**
 * @promise fPromise
 * @reject {Error}
 * @fulfill {Project}
 * @returns {Promise.<Project>}
*/
function renderResults(data) {
    return new Promise((resolve, reject) => {
        resolve(new Project())
    })
}

renderResults()

function Project() {
    this.data = "data";
    this.name = "project phoenix"
    this.location = {
        city: 'seattle',
        state: 'wa'
    }
}
/**
*@promise fPromise
*@reject{Error}
*@fulfill{Project}
*@returns{Promise.}
*/
函数渲染结果(数据){
返回新承诺((解决、拒绝)=>{
解析(新项目())
})
}
renderResults()
功能项目(){
this.data=“data”;
this.name=“凤凰计划”
此位置={
城市:'西雅图',
国家:“wa”
}
}
这将在VS代码中显示如下:


在我的情况下,履行承诺的结果可能包含10+个静态密钥,因此不方便在一行中记录它们。
/**
 * @promise fPromise
 * @reject {Error}
 * @fulfill {Project}
 * @returns {Promise.<Project>}
*/
function renderResults(data) {
    return new Promise((resolve, reject) => {
        resolve(new Project())
    })
}

renderResults()

function Project() {
    this.data = "data";
    this.name = "project phoenix"
    this.location = {
        city: 'seattle',
        state: 'wa'
    }
}