1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-10-22 11:22:43 +02:00
metamask-extension/app/scripts/lib/fetch-with-timeout.js

24 lines
521 B
JavaScript
Raw Normal View History

const fetchWithTimeout = ({ timeout = 120000 } = {}) => {
2020-11-03 00:41:28 +01:00
return async function _fetch(url, opts) {
const abortController = new window.AbortController()
2020-12-23 17:15:07 +01:00
const { signal } = abortController
const f = window.fetch(url, {
...opts,
2020-12-23 17:15:07 +01:00
signal,
})
const timer = setTimeout(() => abortController.abort(), timeout)
try {
const res = await f
clearTimeout(timer)
return res
} catch (e) {
clearTimeout(timer)
throw e
}
}
}
export default fetchWithTimeout