在添加自定义传输代码示例中,在log
方法中,没有说明callback
和setImmediate
调用的目的。
log(info, callback) {
// what is this for? Does Winston need it?
setImmediate(() => {
this.emit('logged', info);
});
// Perform the writing to the remote service
callback(); // is it required to include this cb in all transports? Does Winston need it?
}
我同意。 我也认为这个例子可以改进。 考虑到评论// Perform the writing to the remote service
我假设远程服务是异步调用。 在查看了其他自定义传输之后,示例不应该像这样阅读吗?
log(info, callback = () => {}) {
callRemoteService(info)
.then(result => {
callback(null, result);
this.emit('logged', info);
})
.catch(error => {
callback(error);
this.emit('error', error);
})
}
我在transports.File
代码中找到的回调的默认值。
会发现这真的很有帮助。 此处的示例与https://github.com/winstonjs/winston-transport存储库中的示例一样有限。
查看许多自定义传输,没有两个是相同的。
看起来需要回调实现。 感谢您提及这一点并提出这一点
最有用的评论
我同意。 我也认为这个例子可以改进。 考虑到评论
// Perform the writing to the remote service
我假设远程服务是异步调用。 在查看了其他自定义传输之后,示例不应该像这样阅读吗?我在
transports.File
代码中找到的回调的默认值。