我试图在jsdoc中定义一个带有可变数量参数的回调,但是我的linter告诉我至少有一个参数是预期的,但是给出了0。
/**
* This is the listen equivelant for rabbit.log()
* It uses this.listen(LOG_CHANNEL) to recieve logs
* @param {function(...*):*} callback This gets called with the params from rabbit.log
*/
async listenLogs(callback) {
return await this.listen(LOG_CHANNEL, data => callback(...data));
}
编辑1:按要求:this.listen:
/**
* To listen for a topic call this .
* @param {String} topic Topic to subscribe to
* @param {function(*):*} callback the callback to call for each RabbitMQ message on topic
* @param {Object} [options={}] Further options
* @returns {Promise<void>}
*/
async listen(topic, callback, { durable = false } = {}) {
/* ... */
await channel.consume(
queue.queue,
msg => callback(JSON.parse(msg.content.toString())),
{ noAck: true }
);
}
感谢jonathan heindl标记,我应该看看这个。听。
问题是我的回调定义。
改变这个:
/**
* @param {function(*):*} callback
*/
对此:
/**
* @param {function([*]):*} callback
*/