Guest User

Untitled

a guest
Mar 25th, 2020
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import {Mutex} from 'async-mutex';
  2.  
  3. const mutex = new Mutex();
  4.  
  5. class MyClass {
  6.  
  7.   async willSendRequest(request) {
  8.       const user = this.context.user;
  9.       if (user.expires < Date.now()) {
  10.  
  11.         // Если токен протух, то надо остановить выполнение кода
  12.         // и обновить токен. И mutex почему-то не останавливает его.
  13.  
  14.         const release = await mutex.acquire();
  15.         try {
  16.           // Нужно дождаться выполнения этой функции
  17.           await refreshToken(user);
  18.         } finally {
  19.           release();
  20.         }
  21.       }
  22.      
  23.       // И только потом выполнять это
  24.       request.params.set(
  25.         'auth',
  26.         this.context.user.accessToken,
  27.       )
  28.     }
  29. }
Add Comment
Please, Sign In to add comment