Мало кто из нас использует элемент details. А между тем он хорошо работает и притом почти везде.
Существует ошибочное мнение, что запрос с помощью fetch
нельзя отменить,
так как он возвращает, как известно Promise
,
у которого в интерфейсе не предусмотрено никакой отмены. На самом деле можно. Для
этого используем AbortController
.
Помечено, как экспериментальное, но на текущий момент времени работает везде, кроме
IE. Это объект с простейшим интерфейсом:
signal: AbortSignal
ЭтоEventTarget
с одним событиемabort
abort()
возбуждает событиеabort
наsignal
signal
подкладываем в параметры fetch
, и когда надо "сигналим", что
запрос надо отменить. При этом промис будет фейлиться с исключением AbortError
.
const abortController = new AbortController();
const promise = fetch(url, {
method: 'GET',
signal: abortController.signal,
})
.then(null, err => {
if (err instanceof DOMException && (err as DOMException).code === DOMException.ABORT_ERR) {
// request canceled with AbortController
return false;
}
throw err;
});
// cancel request:
// abortController.abort()
Один signal
можно дать более чем одному fetch
. Все вместе прекрасно отменятся.
Статья с историей AbortController'а.
Рецепт для конфига nginx'а, чтобы он перенаправлял запросы на заданный бэкенд и добавлял заданные параметры в запрос (чтобы, например, не светить всему интернету токены апи сервисов)
location ~ ^/(?<apiservice>(api.service.com|another.service.com))/(?<pathservice>.*)$ {
set $token "";
if ($is_args) {
set $token "&";
}
set $args "${args}${token}service_token=secrettoken"; # update args
resolver 8.8.8.8;
proxy_pass https://$apiservice/$pathservice$is_args$args;
proxy_set_header Host $host;
proxy_redirect off;
}
Так и вынудил в результате Роскомнадзор переехать из https://www.digitalocean.com/, услугами которого я пользовался долгое время и ещё бы попользовался, но перекрыли все: я перепробовал уже все площадки вплоть до Бангалора и Сингапура — всё закрыто. Надо ли говорить, что Телеграм — цель этих мер — отлично работает.
Без всякого удовольствия перенес всё в https://cloud4box.com/. Что про него сказать? Очень дёшево.
Оплата мутная, похожи на мошенников, но все так и есть: и 8G памяти и два CPU. Диск медленный, машина разворачивается неспешно, за dns просят немного денег.