Winston: Melhore o exemplo de transporte personalizado

Criado em 4 jul. 2018  ·  3Comentários  ·  Fonte: winstonjs/winston

No exemplo de código Adding Custom Transports , no método log , não há explicação sobre a finalidade das chamadas callback e 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?
  }

Comentários muito úteis

Eu concordo. Eu também acho que o exemplo poderia ser melhorado. Considerando o comentário // Perform the writing to the remote service , suponho que o serviço remoto seja uma chamada assíncrona. Depois de olhar para outros transportes personalizados, o exemplo não deveria ser assim?

log(info, callback = () => {}) {
    callRemoteService(info)
        .then(result => {
            callback(null, result);
            this.emit('logged', info);
        })
        .catch(error => {
            callback(error);
            this.emit('error', error);
        })
}

O valor padrão para o retorno de chamada eu encontrei no código transports.File .

Todos 3 comentários

Eu concordo. Eu também acho que o exemplo poderia ser melhorado. Considerando o comentário // Perform the writing to the remote service , suponho que o serviço remoto seja uma chamada assíncrona. Depois de olhar para outros transportes personalizados, o exemplo não deveria ser assim?

log(info, callback = () => {}) {
    callRemoteService(info)
        .then(result => {
            callback(null, result);
            this.emit('logged', info);
        })
        .catch(error => {
            callback(error);
            this.emit('error', error);
        })
}

O valor padrão para o retorno de chamada eu encontrei no código transports.File .

Acharia isso realmente útil. O exemplo aqui é limitado, assim como o exemplo no repositório https://github.com/winstonjs/winston-transport .

Olhando através de uma série de transportes personalizados e não há dois iguais.

Parece que a implementação de retorno de chamada é necessária. Obrigado por mencionar isso e trazer este ponto

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

sinai-doron picture sinai-doron  ·  3Comentários

mohanen picture mohanen  ·  4Comentários

kjin picture kjin  ·  3Comentários

pocesar picture pocesar  ·  3Comentários

KingRial picture KingRial  ·  3Comentários