Size: a a a

JavaScript.Ninja

2020 July 08

M

Misha in JavaScript.Ninja
Vladosik
ну есть так сказать какой-то скелет интерфейсов (on screen), к которым потом ПО будет обращаться в зависимости от ситуации... я думаю мб уже глобальные переменные просто обьявить...
извиняюсь за такое обьяснение, в js почти 0, но заставили переписывать из ts в js ))
В тс можешь, а в жс нет?
источник

I

Ivan in JavaScript.Ninja
Misha
В тс можешь, а в жс нет?
в тс тоже не может
источник

K

Krau5 in JavaScript.Ninja
Valentyn Stepovenko
70 для мидла ещё норм, как вам СТО за 40?
можт валюту попутали
источник

EN

El Nasurov in JavaScript.Ninja
Подскажите, пожалуйста, как Вы в проектах обрабатываете axios ошибки без response ?

Решил определить логику обработки axios ошибок, которую разделил на два уровня:
- общие ошибки (они будут перехвачены на уровне интерцептора axios)
- компонентные (в самом try catch блоке компонента, где был инициирован запрос).

Собственно, определяя первый уровень, разделяю все axios ошибки на три типа (позаимствовал из доков axios):
- есть response
- нет response, но есть request
- нет ни первого, ни второго

С первым типом более менее разобрался. Можно по статусу ответа конкретизировать ошибки и разбираться с ними.

А вот со вторым типом - что-то хз. Наткнулся на вот такие примеры ошибок, которые в этом типе могут встречаться (предполагаю, это не конечный список), но вот как их разделять так и не понял...

Да и насколько подробно вообще такие, типовые ошибки, обрабатывают ?
источник

V

Valentin in JavaScript.Ninja
El Nasurov
Подскажите, пожалуйста, как Вы в проектах обрабатываете axios ошибки без response ?

Решил определить логику обработки axios ошибок, которую разделил на два уровня:
- общие ошибки (они будут перехвачены на уровне интерцептора axios)
- компонентные (в самом try catch блоке компонента, где был инициирован запрос).

Собственно, определяя первый уровень, разделяю все axios ошибки на три типа (позаимствовал из доков axios):
- есть response
- нет response, но есть request
- нет ни первого, ни второго

С первым типом более менее разобрался. Можно по статусу ответа конкретизировать ошибки и разбираться с ними.

А вот со вторым типом - что-то хз. Наткнулся на вот такие примеры ошибок, которые в этом типе могут встречаться (предполагаю, это не конечный список), но вот как их разделять так и не понял...

Да и насколько подробно вообще такие, типовые ошибки, обрабатывают ?
а что по ссылке в конце?
источник

EN

El Nasurov in JavaScript.Ninja
Valentin
а что по ссылке в конце?
источник

EN

El Nasurov in JavaScript.Ninja
Внедряя описанное выше, мне нужно будет практически все места вызова api перевести на новый лад (так как до этого никакого механизма обработки ошибок не было).

Собственно перед таким трудоемким процессом хотел поинтересоваться имеет ли право на жизнь такой подход к обработке ошибок, а если "не оч" -> с удовольствием бы почитал о других best practices
источник

TT

Tim T in JavaScript.Ninja
Illya Klymov
в js нет типов, соответственно нет необходимости в интерфейсах
Охоспади😑, а как же Object?
источник

IK

Illya Klymov in JavaScript.Ninja
Tim T
Охоспади😑, а как же Object?
Мы сейчас не о базовых типах
источник

TT

Tim T in JavaScript.Ninja
Vladosik
ну есть так сказать какой-то скелет интерфейсов (on screen), к которым потом ПО будет обращаться в зависимости от ситуации... я думаю мб уже глобальные переменные просто обьявить...
извиняюсь за такое обьяснение, в js почти 0, но заставили переписывать из ts в js ))
Это делается не через интерфейсы, как саказал @xanf_ua,  их в js просто нет. Подобное поведение делается через “js-абстрактный класс” :

https://stackoverflow.com/questions/597769/how-do-i-create-an-abstract-base-class-in-javascript
источник

T

Taras in JavaScript.Ninja
Vladosik
ну есть так сказать какой-то скелет интерфейсов (on screen), к которым потом ПО будет обращаться в зависимости от ситуации... я думаю мб уже глобальные переменные просто обьявить...
извиняюсь за такое обьяснение, в js почти 0, но заставили переписывать из ts в js ))
Если чесно, то не имеет смысла переписывать из ts в js, так как первый успешно транслитится во второй и при этом имеет нужные вам интерфейсы.
источник

V

Vladosik in JavaScript.Ninja
уже сам это понял, спасибо)
источник

TT

Tim T in JavaScript.Ninja
Taras
Если чесно, то не имеет смысла переписывать из ts в js, так как первый успешно транслитится во второй и при этом имеет нужные вам интерфейсы.
Действительно🤔
источник

TT

Tim T in JavaScript.Ninja
Vladosik
уже сам это понял, спасибо)
Вопрос то хороший👌🏻
источник

TT

Tim T in JavaScript.Ninja
Vladosik
уже сам это понял, спасибо)
Вот еще одно объяснение:

https://qna.habr.com/q/146023
источник
2020 July 09

M

Maksim in JavaScript.Ninja
Всегда пользовался class declaration в последнее время все чаще встречается class expression. Подскажите в чем преимущество class expression перед class declaration? Почему class expression становится более популярный?
источник

M

Misha in JavaScript.Ninja
Maksim
Всегда пользовался class declaration в последнее время все чаще встречается class expression. Подскажите в чем преимущество class expression перед class declaration? Почему class expression становится более популярный?
источник

IK

Illya Klymov in JavaScript.Ninja
понятия не имею
источник

VS

Valentyn Stepovenko in JavaScript.Ninja
Maksim
Всегда пользовался class declaration в последнее время все чаще встречается class expression. Подскажите в чем преимущество class expression перед class declaration? Почему class expression становится более популярный?
Это равноценные способы, но у них есть особенности и их лучше применять в разных местах. const MyClass = class {}; можно делать внутри функций, когда нужно создавать новые классы каждый раз, когда вызывается функция. Особенности такого подхода: до присвоения класса не видно (нет всплытия идентификаторов), а если использовать let, то один идентификатор можно связывать с разными классами (подменять их при необходимости). А class MyClass {} виден сразу во всем файле или внутри функции, если объявлен в ней (всплывает). Применять этот метод можно когда мы создаем статический набор классов, не изменяемый во время работы. Если нам не принципиальны эти отличия, то методы в большей части случаем могут взаимозаменяться (на ваш выбор).
источник

TT

Tim T in JavaScript.Ninja
@NexGenUa могли бы привести пример когда может понадобиться «создание статического набора классов» и что вы имеете в виду под «неизменяемых во время работы»?
источник