Wie kann das Timeout für Axios-Anfragen erhöht werden?
P粉293550575
P粉293550575 2023-09-06 12:34:46
0
1
528

Ich bin relativ neu in JavaScript/TypeScript (lerne noch) und habe versucht, Anfragen mit Fetch und Axios zu stellen, habe aber Probleme mit der Netzwerkverbindung. Die Fehlermeldung, die ich erhalte, ist:

cause: AggregateError at internalConnectMultiple (node:net:1102:18) at internalConnectMultiple (node:net:1161:5) at Timeout.internalConnectMultipleTimeout (node:net:1644:3) at listOnTimeout (node:internal/timers:575:11) at process.processTimers (node:internal/timers:514:7) { code: 'ENETUNREACH', [errors]: [ Error: connect ENETUNREACH 2001:67c:4e8:f004::9:443 - Local (undefined:undefined) at internalConnectMultiple (node:net:1160:40) at Timeout.internalConnectMultipleTimeout (node:net:1644:3) at listOnTimeout (node:internal/timers:575:11) at process.processTimers (node:internal/timers:514:7) { errno: -101, code: 'ENETUNREACH', syscall: 'connect', address: '2001:67c:4e8:f004::9', port: 443 } ] } } Node.js v20.3.1

Ich denke, der Code ist unnötig, verwenden Sie einfachaxios({"url": "https://example.com"}).

Die Netzwerkgeschwindigkeit ist langsam und instabil, aber ich kann auf das Internet zugreifen. Diese Anfragen funktionieren problemlos mit anderen Dienstprogrammen wie Curl oder Requests in Python (versuchen Sie es zunächst mit beiden), sodass Probleme mit meinem Computer oder meiner Netzwerkkonfiguration ausgeschlossen sind.

fetch und axios funktionieren beide tatsächlich, aber ich bin gezwungen, es immer wieder zu versuchen (bis zu 200 Mal), bis es funktioniert. Ich habe erfolglos versucht,{ timeout: 0 }{ timeout: 5000 }an den Axios-Konstruktor zu übergeben.

Ich habe es auch versucht, aber nichts scheint zu funktionieren:

const source = CancelToken.source(); const timeout = setTimeout(() => { source.cancel(); }, 10000); axios.get(ip + '/config', {cancelToken: source.token}).then((result) => { clearTimeout(timeout); // ... });
axios.get('/foo/bar', { signal: AbortSignal.timeout(5000) //Aborts request after 5 seconds }).then(function(response) { // ... });

P粉293550575
P粉293550575

Antworte allen (1)
P粉814160988

您可以使用timeout属性作为可传递给axios的配置选项之一。

https://axios-http.com/docs/req_config

您还可以更改其默认值,而不是每次都使用timeout属性:

const instance = axios.create(); instance.defaults.timeout = 2500;

https://axios-http.com/docs/config_defaults

    Neueste Downloads
    Mehr>
    Web-Effekte
    Quellcode der Website
    Website-Materialien
    Frontend-Vorlage
    Über uns Haftungsausschluss Sitemap
    Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!