鉴于此代码:
function asyncFoo() {
return new Promise(function (fulfill, reject) {
doAsyncStuff(function(err, data) {
if(err) reject(new Error(err));
else fulfill(new Bar(data));
});
});
}
我如何记录asyncFoo
将返回Promise
,在完成后会产生Bar
的实例,并且当被拒绝时会产生Error
的实例?
/**
* @return << Here, what do I have to write? >>
*/
function asyncFoo() { ... }
答案 0 :(得分:17)
看起来您应该根据some other source code's comments执行以下操作。
/**
* @return {Promise.<Bar>}
*/
How JavaScript Promises are documented.
Similar question with a similar answer.注意答案中缺少一个点。
答案 1 :(得分:8)
我想指定它是@async
的异步函数,并使用@returns
指定已完成的返回,并使用@throws
指定错误
/**
* @async
* @returns {Bar}
* @throws {Error}
*/
function asyncFoo() { ... }
答案 2 :(得分:0)
我个人更喜欢严格区分 - 从异步函数声明最终类型,从直接返回 Promise 的函数声明 Promise。
/**
Async JSON request
@param {string} sql
@returns {object}
*/
async function request(sql)
{
return JSON.parse(await dbEngine.executeRequest(sql));
}
/**
Async JSON request
@param {string} sql
@returns {Promise<string>}
*/
function request(sql)
{
return dbEngine.executeRequest(sql);
}