Skip to content

Instantly share code, notes, and snippets.

@sobstel
Created August 6, 2017 10:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sobstel/ede78ad0bffc2efbcb49b93a152b838b to your computer and use it in GitHub Desktop.
Save sobstel/ede78ad0bffc2efbcb49b93a152b838b to your computer and use it in GitHub Desktop.
fetch timeout
const CONNECTION_TIMEOUT = 20000;
function getData (url) {
let timer = null;
const service = fetch(url)
.then((response) => {
clearTimeout(timer);
return response.json();
});
const timeout = new Promise((resolve) => { timer = setTimeout(resolve, CONNECTION_TIMEOUT); })
.then(() => { throw new Error('Connection timeout'); });
return Promise.race([service, timeout]);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment