diff --git a/lib/models/apirequest.js b/lib/models/apirequest.js index 8955a89..dfe43cb 100644 --- a/lib/models/apirequest.js +++ b/lib/models/apirequest.js @@ -26,6 +26,15 @@ function getMissingParams (params, required) { return missing.length > 0 ? missing : null; } +function timeout(ms, promise) { + return new Promise(function(resolve, reject) { + setTimeout(function() { + reject(new Error("timeout")) + }, ms); + promise.then(resolve, reject); + }); +} + function DefaultTransporter(){ }; @@ -33,14 +42,15 @@ DefaultTransporter.prototype.request = function(opts, auth, opt_callback) { const url = (opts.uri || opts.url) + '?key=' + auth; let err = false; let response = null; - return fetch(url, opts).then( - result => { - response = result; - err = result.ok !== true; - return result.text(); - } - ).then(text => { + + return timeout(opts.timeout, fetch(url, opts)).then(result => { + response = result; + err = result.ok !== true; + return result.text(); + }).then(text => { this.wrapCallback_(opt_callback)(err, response, text); + }).catch(e => { + this.wrapCallback_(opt_callback)(e, null, null); }); }; diff --git a/package.json b/package.json index b6f407d..56fe873 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "request": "^2.67.0", "underscore": "^1.8.3" }, - "author": "Vladimir Hovsepyan ", + "author": "ROOT", "repository": { "type": "git", "url": "git+https://github.com/vladimir2492/react-cloud-vision-api.git" @@ -12,10 +12,10 @@ "devDependencies": {}, "directories": {}, "main": "index.js", - "name": "react-cloud-vision-api", + "name": "react-cloud-vision-api-ext", "optionalDependencies": {}, "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, - "version": "0.2.0" + "version": "0.2.1" }