Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import {Mutex} from 'async-mutex';
- const mutex = new Mutex();
- class MyClass {
- async willSendRequest(request) {
- const user = this.context.user;
- if (user.expires < Date.now()) {
- // Если токен протух, то надо остановить выполнение кода
- // и обновить токен. И mutex почему-то не останавливает его.
- const release = await mutex.acquire();
- try {
- // Нужно дождаться выполнения этой функции
- await refreshToken(user);
- } finally {
- release();
- }
- }
- // И только потом выполнять это
- request.params.set(
- 'auth',
- this.context.user.accessToken,
- )
- }
- }
Add Comment
Please, Sign In to add comment