Skip to content

Commit e849a3f

Browse files
Merge pull request #98 from appbaseio/http-timeout
fix: abort request on timeout
2 parents d3bc6b6 + 86b4cc7 commit e849a3f

File tree

2 files changed

+7
-1
lines changed

2 files changed

+7
-1
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "appbase-js",
3-
"version": "5.3.3",
3+
"version": "5.3.4",
44
"main": "dist/appbase-js.cjs.js",
55
"jsnext:main": "dist/appbase-js.es.js",
66
"module": "dist/appbase-js.es.js",

src/core/request/fetch.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,10 @@ function fetchRequest(args) {
101101
const transformedRequest = Object.assign({}, ts);
102102
const { url } = transformedRequest;
103103
delete transformedRequest.url;
104+
105+
const controller = new AbortController();
106+
const { signal } = controller;
107+
104108
const fetchPromise = fetch(
105109
url || finalURL,
106110
Object.assign({}, transformedRequest, {
@@ -111,13 +115,15 @@ function fetchRequest(args) {
111115
'x-timestamp': new Date().getTime(),
112116
})
113117
: transformedRequest.headers,
118+
signal, // Attach the abort signal to the fetch request
114119
}),
115120
);
116121

117122
const timeoutPromise = new Promise((_, rejectTP) => {
118123
if (httpRequestTimeout > 0) {
119124
setTimeout(() => {
120125
rejectTP(new Error('Request timeout'));
126+
controller.abort();
121127
}, httpRequestTimeout);
122128
}
123129
});

0 commit comments

Comments
 (0)