Добавлен параметр "promiseCancellable" для "wrapPromiseTimeout" - обеспечение корректной обработки промисов, не имеющих методов "isPending" и "cancel"
This commit is contained in:
parent
9cd779dd64
commit
62786dcc5a
@ -404,7 +404,7 @@ const getURLProtocol = sURL => {
|
||||
};
|
||||
|
||||
//Обёртывание промиса в таймаут исполнения
|
||||
const wrapPromiseTimeout = (timeout, promise) => {
|
||||
const wrapPromiseTimeout = (timeout, promise, promiseCancellable = true) => {
|
||||
if (!timeout) return promise;
|
||||
let timeoutPid;
|
||||
const timeoutPromise = new Promise((resolve, reject) => {
|
||||
@ -414,7 +414,7 @@ const wrapPromiseTimeout = (timeout, promise) => {
|
||||
timeoutPid = setTimeout(() => reject(e), timeout);
|
||||
});
|
||||
return Promise.race([promise, timeoutPromise]).finally(() => {
|
||||
if (promise.promise().isPending()) promise.cancel();
|
||||
if (promiseCancellable && promise.promise().isPending()) promise.cancel();
|
||||
if (timeoutPid) clearTimeout(timeoutPid);
|
||||
});
|
||||
};
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user