Ответы пользователя по тегу TypeScript
  • Отображается ошибка в коде TypeScript Next js, хотя ошибки нет. Как исправить?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    TS - он про типы.
    Вы создаёте функцию, которая принимает на вход тип HTMLButtonElement, а использовать её пытаетесь как обработчик события click, который передаёт параметр с типом MouseEvent.
    Ответ написан
    1 комментарий
  • Как правильно организовать обновление пар JWT + RT в API для нескольких клиентов?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    В SPA в пределах одной страницы это реализуется примерно так:
    var isRefreshing = null;
    var refreshingCall = null;
    async function request() {
      while (true) {
        if (isRefreshing) {
          const refreshed = await refreshingCall;
          isRefreshing = false;
        }
        const response = await fetch(...);
        const data = await response.json();
        if (!data.needRefresh) {
          return data;
        }
        isRefreshing = true;
        refreshingCall = doRefresh(...);
      }
    }
    
    async function doRefresh(...) {
      ...
    }
    Основная идея - использование глобального флага обновления токена и глобальной переменной с промисом. Первый запрос, обнаруживший необходимость обновления, выставляет флаг и записывает промис, который возвращает функция обновления. Второй (и последующие) запрос видит, что флаг уже стоит и просто ждёт выполнения промиса.
    Ответ написан
  • Как получить JSON из массива байт?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    А зачем вам массив байтов?
    Для начала, если хотите, чтобы вам возвращался не gzip, правильно передавайте в запросе заголовок 'Accept-Encoding' или вообще его не передавайте.
    Затем, вам приходит XML, кодировка его указана в первой строке (Windows-1251). Соответственно можете перекодировать в любую нужную вам кодировку.
    Остаётся только распарсить XML и сгенерировать JSON в том формате, который вам нужен.
    Ответ написан