На жаль, не працюватиме, оскільки нам потрібно якимось чином дізнатися чи відбувається рефреш у іншій табі.
Потенційно так, але сам рефреш токен може жити досить довго, а завеликий TTL при ретраях може призвести до того, що користувач буде довше очікувати на виконання запиту.
Якщо казати про приклад синхронізації localStorage, то, хоча сама операція читання/запису до нього є синхронною, але код може мати логіку роботи, що містить асинхронність, як приклад нижче, де одночасно дві таби можуть прочитати однакове init значення та одночасно почати виконувати асинхронну дію, хоча, за вимогою, тільки одна таба може одночасно робити асинхронний запит:
```ts
const initValue = getFromLS(key);
if (!initValue) {
const newValue = await requestNewValue();
setLS(key, newValue);
}
Умовно, коли запит отримує 401 помилки й починає процес ретраю, то TTL цього ретраю може закінчитися раніше, ніж refresh операція закінчиться і результат буде logout. Хотілось уникнути такої вірогідністі.
Механізм повтору запитів це гарне просте рішення, але мною не був обраний такий варіант, оскільки це збільшує навантаження на клієнт і сервер через додаткові запити, але не дає повну гарантію запобігання конкретних проблем у моєму випадку.
Дякую за працю, треба буде почитати, виглядає цікаво.
За тривалий час проблем з deadlock у даному рішенні не зустрічав, можете поділитись потенційним прикладом такого випадку?
Особисто не стикався з випадками, де можна було б використати ці можливості, але API точно корисне для вирішення точкових проблем, пов’язаних з конкурентністю, дякую.
Зауваження з localstorage коректне в розрізі проблеми авторизації, але відсутність можливості синхронізувати різних браузери все ще може бути проблемою, яку дане API не вирішує, тому вирішив це згадати
Привіт, навчався на напрямку Fullstack, хочу розповісти про пару класних моментів:
1. Класна команда викладачів, менторів і координаторів, які допомагають тобі сформуватися як спеціалісту, підтягнути твої сильні сторони й стати валідним кандидатом на ринку.
2. Дуже порадували безкоштовні уроки розмовного й граматичного англійського з носіями для різних рівнів.
3. Як людину, що любить автоматизацію, вразила платформа, що синхронізує всі завдання, відгуки, тех чеки та буквально кожен процес навчання.
Дуже рекомендую мейт!
Згоден, якщо дивитися більш з продуктової точки зору, то для блокуванням картки відсутність блокування кнопки може нашкодити, але для безпечніших операцій це часто бажана поведінка. Наприклад, коли ви в інстаграмі ставите вподобайку, то кнопка не блокується на час мережевого запиту, а лишається активною, що дає користувачу можливість вподобайку прибрати та візуальний відгук, що кнопка змінила свій стан одразу.
Черга це один із можливих варіантів вирішення даної задачи. В контексті статті хотілось надати читачу спрощений приклад мутації спільного стану паралельними асинхронними запитами, для введення у тему.