From ffc0237a175b825b28c90dae221af2216309e52f Mon Sep 17 00:00:00 2001 From: mzabriskie Date: Thu, 18 Jun 2015 21:56:22 -0600 Subject: [PATCH] Adding support for timeout config closes #56 --- lib/adapters/http.js | 5 +++++ lib/adapters/xhr.js | 3 +++ lib/defaults.js | 2 ++ 3 files changed, 10 insertions(+) diff --git a/lib/adapters/http.js b/lib/adapters/http.js index 84a89be..bcb11ea 100644 --- a/lib/adapters/http.js +++ b/lib/adapters/http.js @@ -88,6 +88,11 @@ module.exports = function httpAdapter(resolve, reject, config) { reject(err); }); + // Handle request timeout + req.setTimeout(config.timeout, function () { + req.abort(); + }); + // Send the request req.end(data); }; diff --git a/lib/adapters/xhr.js b/lib/adapters/xhr.js index dc5c6d0..73886a0 100644 --- a/lib/adapters/xhr.js +++ b/lib/adapters/xhr.js @@ -36,6 +36,9 @@ module.exports = function xhrAdapter(resolve, reject, config) { var request = new (XMLHttpRequest || ActiveXObject)('Microsoft.XMLHTTP'); request.open(config.method.toUpperCase(), buildUrl(config.url, config.params), true); + // Set the request timeout in MS + request.timeout = config.timeout; + // Listen for ready state request.onreadystatechange = function () { if (request && request.readyState === 4) { diff --git a/lib/defaults.js b/lib/defaults.js index 94e9d44..ba2ca8e 100644 --- a/lib/defaults.js +++ b/lib/defaults.js @@ -55,6 +55,8 @@ module.exports = { put: utils.merge(DEFAULT_CONTENT_TYPE) }, + timeout: 0, + xsrfCookieName: 'XSRF-TOKEN', xsrfHeaderName: 'X-XSRF-TOKEN' }; -- GitLab