Heim > Fragen und Antworten > Hauptteil
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 einfach axios({"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粉8141609882023-09-07 10:18:52
您可以使用 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