Size: a a a

JavaScript.Ninja

2020 April 14

IK

Illya Klymov in JavaScript.Ninja
Павел Романченко
const a: number = arr[0], так как это массив чисел, то и любой элемент должен быть числом, это как я понял
с чего бы?
источник

IK

Illya Klymov in JavaScript.Ninja
это как раз и есть различие между sound / unsound
источник

IK

Illya Klymov in JavaScript.Ninja
операция arr[i] может вернуть как число так и undefined
источник

ПР

Павел Романченко in JavaScript.Ninja
Illya Klymov
с чего бы?
ну мне вот тоже не очень понятно, я привел такой пример, что если написать так const arr = [1, '3'] то почему-то тс может вывести тип arr, может не очень удачный пример привёл )) ну в любом случае, спасибо за подсказку, сейчас перечитаю ещё раз issue, которое нашел и попытаюсь сформулировать нормальное объяснение для коллег :)
источник

RN

Roman Naumtsov in JavaScript.Ninja
Здраствуйте!
Почему может приведение HTMLCollection в массив через Array.from(HTMLCollection) возвращать пустой массив?
источник

IK

Illya Klymov in JavaScript.Ninja
к примеру вы приводите не в тот момент
источник

IK

Illya Klymov in JavaScript.Ninja
HTMLCollection живая, массив нет
источник

RN

Roman Naumtsov in JavaScript.Ninja
Illya Klymov
HTMLCollection живая, массив нет
Тогда мне не понятно, почему это работало ранее в другой части программы 🙈

Хорошо, тогда есть вариант получить их через querySelectorAll, но мне не понятно, как сделать им выборку. Он не глубинно ищет, на сколько я понимаю?
источник

AK

Anton Kharkhonov in JavaScript.Ninja
Ребзи, как решить такой момент когда в компоненте могут запускаться несколько асинхронных запросов и нужно показывать спиннер? Обычный булеан типа isLoading  не подходит так как самый первый запрос, который отработает, перетрет булку в false хотя она должна держаться до последного реквеста. Самый простой способ это каунтер на количество запросов но это топорно мне кажется
источник

PG

Pavel Gubin in JavaScript.Ninja
Anton Kharkhonov
Ребзи, как решить такой момент когда в компоненте могут запускаться несколько асинхронных запросов и нужно показывать спиннер? Обычный булеан типа isLoading  не подходит так как самый первый запрос, который отработает, перетрет булку в false хотя она должна держаться до последного реквеста. Самый простой способ это каунтер на количество запросов но это топорно мне кажется
async await?
источник

PG

Pavel Gubin in JavaScript.Ninja
async () => {
 isLoading = true
 await ...
 await ...
 isLoading = false
}
источник

PG

Pavel Gubin in JavaScript.Ninja
либо просто обернуть все эти запросы (если отдельные функции) в третью и сделать так же
источник

AK

Anton Kharkhonov in JavaScript.Ninja
Pavel Gubin
async () => {
 isLoading = true
 await ...
 await ...
 isLoading = false
}
если вызовы в коде то да, но если реквесты например через кнопку в интерфейсе создаются
источник

B

Bendyrko in JavaScript.Ninja
Promise.all  ?
источник

PG

Pavel Gubin in JavaScript.Ninja
Anton Kharkhonov
если вызовы в коде то да, но если реквесты например через кнопку в интерфейсе создаются
а что мешает в методе реквеста задавать isLoading?
источник

PG

Pavel Gubin in JavaScript.Ninja
isLoading = true;
req.finally(() => isLoading = false)

что то вроде этого
источник

МК

Максим Кавецкий in JavaScript.Ninja
Привет! Сорри, что немного не по теме. Н, может кто подскажет: как менее болезнено сделать подсветку меню сайта (на лендинге) от текущей активной секции? Например если я проскролил на "Плюшки",  тогда активнен пункт меню с плюшками и так далее. Как думаете???
источник

C

Ciemna_noc in JavaScript.Ninja
может Promise.race( и тут перебрать промисы)
источник

AK

Anton Kharkhonov in JavaScript.Ninja
https://codesandbox.io/s/practical-saha-pp8nx?file=/src/App.tsx

минимальный пример. Если быстро несколько раз кликнуть на кнопку то запуститься несколько реквестов и isLoading скинется после первого реквеста. Заковыка в том что бы isLoading последний реквест ждал
источник

PG

Pavel Gubin in JavaScript.Ninja
Anton Kharkhonov
https://codesandbox.io/s/practical-saha-pp8nx?file=/src/App.tsx

минимальный пример. Если быстро несколько раз кликнуть на кнопку то запуститься несколько реквестов и isLoading скинется после первого реквеста. Заковыка в том что бы isLoading последний реквест ждал
тогда Promise.all подойдёт, а вообще я бы задизейблил кнопку, подальше от такого поведения)
источник