Winston: 改进自定义运输示例

创建于 2018-07-04  ·  3评论  ·  资料来源: winstonjs/winston

添加自定义传输代码示例中,在log方法中,没有说明callbacksetImmediate调用的目的。

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代码中找到的回调的默认值。

所有3条评论

我同意。 我也认为这个例子可以改进。 考虑到评论// 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存储库中的示例一样有限。

查看许多自定义传输,没有两个是相同的。

看起来需要回调实现。 感谢您提及这一点并提出这一点

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

tagyoureit picture tagyoureit  ·  4评论

pocesar picture pocesar  ·  3评论

JaehyunLee-B2LiNK picture JaehyunLee-B2LiNK  ·  3评论

xungwoo picture xungwoo  ·  3评论

exortech picture exortech  ·  3评论