1. ホーム
  2. javascript

[解決済み】ETIMEDOUTエラーの対処方法は?

2022-02-06 09:47:28

質問

このコールのetimedoutエラーはどのように処理するのですか?

 var remotePath = "myremoteurltocopy"
 var localStream = fs.createWriteStream("myfil");;
        var out = request({ uri: remotePath });
        out.on('response', function (resp) {
            if (resp.statusCode === 200) {
                out.pipe(localStream);
                localStream.on('close', function () {
                    copyconcurenceacces--;
                    console.log('aftercopy');
                    callback(null, localFile);
                });
            }
            else
                callback(new Error("No file found at given url."), null);
        })

もっと長い時間待つ方法はないのか?

このエラーの原因は一体何なのでしょうか?タイムアウトのみ?

解決方法は?

これは、リクエストの応答が一定時間内に届かない場合(by {コード {コード リクエストモジュールのオプション)。

基本的にそのエラーを最初にキャッチするために、ハンドラーを timeoutそうすれば、処理されないエラーはもう投げられない。 error. もう少し説明 こちら .

ハンドラでは、エラーがETIMEDOUTであるかどうかをチェックし、独自のロジックを適用することができます。 out.on('error', function (err) { /* handle errors here */ }).

再びファイルを要求する場合は、次のようにすることをお勧めします。 ノードリトライ または ノードバックオフ モジュールを使用します。これによって、物事がよりシンプルになります。

もっと長く待ちたい場合は if (err.message.code === 'ETIMEDOUT') { /* apply logic */ }timeout