Solución:
Esto se produce cuando la respuesta a su solicitud no se recibe en un tiempo determinado (por timeout
Solicitar opción de módulo).
Básicamente, para detectar ese error primero, debe registrar un controlador en error
, por lo que el error no controlado ya no se lanzará: out.on('error', function (err) { /* handle errors here */ })
. Alguna explicación más aquí.
En el controlador puede verificar si el error es ETIMEDOUT y aplicar su propia lógica: if (err.message.code === 'ETIMEDOUT') { /* apply logic */ }
.
Si desea volver a solicitar el archivo, le sugiero que utilice módulos de reintento de nodo o de retirada de nodo. Hace las cosas mucho más sencillas.
Si desea esperar más, puede configurar timeout
opción de solicitarlo usted mismo. Puede configurarlo en 0 para que no haya tiempo de espera.
Podríamos mirar el objeto de error para una propiedad code
que menciona el posible error del sistema y en los casos de ETIMEDOUT
cuando falle una llamada de red, actúe en consecuencia.
if (err.code === 'ETIMEDOUT') {
console.log('My dish error: ', util.inspect(err, { showHidden: true, depth: 2 }));
}