Winston: Mejorar el ejemplo de transporte personalizado

Creado en 4 jul. 2018  ·  3Comentarios  ·  Fuente: winstonjs/winston

En el ejemplo de código Agregar transportes personalizados , en el método log , no hay explicación sobre el propósito de las llamadas callback y 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?
  }

Comentario más útil

Estoy de acuerdo. También creo que el ejemplo podría mejorarse. Teniendo en cuenta el comentario // Perform the writing to the remote service , supongo que el servicio remoto es una llamada asíncrona. Después de ver otros transportes personalizados, ¿no debería leerse así el ejemplo?

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

El valor predeterminado para la devolución de llamada que encontré en el código transports.File .

Todos 3 comentarios

Estoy de acuerdo. También creo que el ejemplo podría mejorarse. Teniendo en cuenta el comentario // Perform the writing to the remote service , supongo que el servicio remoto es una llamada asíncrona. Después de ver otros transportes personalizados, ¿no debería leerse así el ejemplo?

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

El valor predeterminado para la devolución de llamada que encontré en el código transports.File .

Encontraría esto realmente útil. El ejemplo aquí es limitado, al igual que el ejemplo en el repositorio https://github.com/winstonjs/winston-transport .

Mirando a través de una serie de transportes personalizados y no hay dos iguales.

Parece que se requiere la implementación de devolución de llamada. Gracias por mencionar esto y mencionar este punto.

¿Fue útil esta página
0 / 5 - 0 calificaciones