Сохранен 522
https://2ch.hk/pr/res/1993705.html
24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

JS Thread #209 /js/

 Аноним 12/04/21 Пнд 14:35:10 #1 №1993705 
image
Предыдущий тред: >>1984611 (OP)
Больше пары строк кода в посте или на скриншоте ведут в ад.

Для программирования на HTML https://codesandbox.io
Для Node.js с консолькой https://repl.it/languages/nodejs

Если рассчитываешь получить дельный ответ, сформулируй правильно вопрос: «что я хочу получить, что я для этого делаю, что я вместо этого получаю». Если когда самостоятельно найдёшь решение — поделись в треде, мы за тебя переживаем.

Документация - https://developer.mozilla.org
Руководство для вката - https://github.com/acilsd/wrk-fet#javascript
Старая паста - https://pastebin.com/9yRADC0s
Аноним 12/04/21 Пнд 14:46:00 #2 №1993718 
Mobx
Аноним 12/04/21 Пнд 14:53:49 #3 №1993725 
>>1993718
useContext
Аноним 12/04/21 Пнд 14:57:17 #4 №1993727 
Сап, jsач, нужна твоя помощь (сам ещё только вкатываюсь).

Суть:
Есть массив промисов (если надо, можно вместо него использовать сет промисов, чуть переписав окружающий код), с которым работают асинхронные функции. Они могут в рандомное (с нашей точки зрения) время добавлять туда промисы и удалять их оттуда. Задача: сделать функцию, которая принимает этот массив и возвращает один общий промис на выполнение всех промисов в массиве (включая добавленные позже и исключая удалённые из массива).

Promise.all не работает, он не обращает внимания на те промисы, которые добавлены позже его вызова.

Добавление я, вроде бы, смог реализовать (т. е., если используется только .push, то можно внутри асинхронной функции спокойно перебирать массив (с awaitами на каждой итерации), и если в конец массива будут добавлены новые промисы, то цикл обязательно до них дойдёт).

А вот с удалением серьёзные проблемы. Если, например, цикл дошёл до какого-то промиса и ждёт его, а в это время какая-то другая асинхронная функция удалила этот промис из массива, то как об этом узнать и прервать бессмысленное ожидание промиса, который уже удалён из массива?
Аноним 12/04/21 Пнд 15:03:45 #5 №1993733 
Screenshot from 2021-04-12 15-03-28.png
>>1993727
Аноним 12/04/21 Пнд 15:39:02 #6 №1993776 
>>1993727
https://caolan.github.io/async/v3/docs.html#queue
Аноним 12/04/21 Пнд 15:46:49 #7 №1993785 
>>1993727
>вкатываюсь
не лезь, дебил она тебя сожрёт


>Суть:
>пук

>если надо, можно вместо него использовать сет
чё несёт вообще

>возвращает один общий промис
ты хочешь странного

>Promise.all не работает
твоя мамка не работает

Тебе нужен async queue. Всё, больше не приходи сюда.
Аноним 12/04/21 Пнд 16:22:45 #8 №1993824 
1234.jpg
Репощу сюда из предыдущего треда.
Здарова, вебаны. Такое дело. На https://duckduckgo.com при нажатии на капс форма поиска теряет фокус. Я пытаюсь это предотвратить. Очевидная идея — написать юзерскрипт, который будет перехватить нажатие клавиши и вернуть фокус на место. Но нет.
document.querySelector("#search_form_input").onkeydown=((e) => {console.log(e.which); return;})
$(document).keydown((e) => {console.log(e.which); return;})
И то, и то просто не печатает кейкод для капса. Потому что, как выяснилось, по какой-то причине в ЖСе для этих кнопок ивент нажатия просто не создаётся.
document.querySelector("#search_form_input").setAttribute("autofocus", "")
Тоже ничего не меняет.
У гугла, кстати, форма фокус не теряет.
Браузер Firefox 87.
Аноним 12/04/21 Пнд 16:30:20 #9 №1993834 
>>1993824
> На https://duckduckgo.com при нажатии на капс форма поиска теряет фокус

Сука в гiлос просто.
Аноним 12/04/21 Пнд 16:36:04 #10 №1993843 
>>1993824
Ниче там не теряет шиз, смени браузер
Аноним 12/04/21 Пнд 16:37:24 #11 №1993845 
>>1993824

Или куки почисть, а можт ты прост еблан и жмешь на таб вместо капса?

У меня фокся 87 все работает
Аноним 12/04/21 Пнд 17:06:53 #12 №1993871 
160112.jpg
>>1993845
>>1993843
>>1993834
>>1993824
Всё, я разобрался. Это из-за какого-то косяка в i3. Когда делаешь биндинг на любую клавишу/сочетание, это происходит. Странно, что это эта "особенность" оконного менеджера проявляется исключительно в браузере и исключительно на одном сайте.
Аноним 12/04/21 Пнд 17:31:52 #13 №1993914 
У меня есть в стейте типо статус приложухи isUpdated. Короче некоторые экшены при попадании в редюсер изменяют его с true на false. Хочу чтобы если flase, то у меня фетчилась дата с сервера.
Как сделать чтобы функция мониторила статус isUpdated и автоматически что-то фетчила с сервера? В useEffect прописать state.isUpdated? Но тогда это получится бесконечный цикл фетчей.
Аноним 12/04/21 Пнд 17:40:52 #14 №1993926 
>>1993914
Subscribe
Аноним 12/04/21 Пнд 17:42:33 #15 №1993927 
>>1993914
веб сокет
Аноним 12/04/21 Пнд 18:45:31 #16 №1993991 
Анон, как сохранить массив из express в postgresql
чтобы каждый элемент был в отдельной строке.
Аноним 12/04/21 Пнд 19:18:25 #17 №1994026 
>>1993991
Обойти массив и заинсертить каждый его элемент в постгру.
Аноним 12/04/21 Пнд 19:52:05 #18 №1994045 
Почему стрелочные функции плохо называть лямбда-функциями?
Аноним 12/04/21 Пнд 19:55:17 #19 №1994053 
>>1994045
где плохо?
Аноним 12/04/21 Пнд 20:09:09 #20 №1994065 
replace.png
Да еб вашу мать.

Нужно:
Принимать в инпут только целые положительные числа и убирать все нули, если они стоят перед любыми другими цифрами, типа 002 -> 2

И вот что за пиздец на строке 7, я могу заменить эти нули на что угодно, но только не на пустой символ. Если заменяю их на числа от 1-9 все круто, 001 становится например 991. Но если хочу заменить на пустой символ и потом вернуть в setProductCount число, а не строку, преобразовывая через + оператор. То хуй там, нули игнорятся и остаются на том же самом месте. Они не меняются на пустой символ. Что за хуита? Почему нельзя заменить нули на пустой символ? Они ведь все равно еще до преобразования в число преобразовываться должны же?
Аноним 12/04/21 Пнд 20:10:09 #21 №1994068 
>>1994045
Потому что они по сути не всегда анонимные? Ты можешь присвоить стрелочную функцию какой-нибудь переменной и тогда это уже не будет лямбда
Аноним 12/04/21 Пнд 20:11:50 #22 №1994070 
>>1994065
Причем если подставить туда вообще какой-нибудь символ W, то закономерно преобразуется в NaN. А пустой символ ничего не делает совершенно
Аноним 12/04/21 Пнд 20:12:01 #23 №1994071 
image.png
>>1994065
Ты что, больной?
Аноним 12/04/21 Пнд 20:13:51 #24 №1994074 
>>1994071
Вот теперь объясни, в каком месте я сру себе в штаны? Почему реплейс не хочет заменять нули на пустой символ, но заменяет на что угодно другое?
Аноним 12/04/21 Пнд 20:17:58 #25 №1994077 
>>1994074
Может я потерял нить твоих рассуждений, но нахуя тебе в принципе что-то реплейсить на пустой символ?

>Нужно:
Принимать в инпут только целые положительные числа и убирать все нули, если они стоят перед любыми другими цифрами, типа 002 -> 2

По регулярке проверяешь, совпадает ли введенный формат. И проверяешь начинается ли значение с 0, если да, то делаешь +value.toString() (если нужно дальше работать со значением как со строкой). Или тебе нужно еще проверять кейсы типо 102 -> 12?
Аноним 12/04/21 Пнд 20:18:38 #26 №1994079 
>>1994074
> Почему реплейс не хочет заменять нули на пустой символ
Скрин или не было
Аноним 12/04/21 Пнд 20:18:53 #27 №1994080 
>>1994074
>>1994071
Я не понимаю почему, но дальше всё передается так, как если бы нуля не было, как в твоем примере, даже без моей проверки. Но в самом инпуте остается 002, а дальше в корзину попадает просто обычная цифры 2, даже если её в консоль как строку вывожу. Я не могу понять почему нули не пропадают из инпута. Причем пустой символ явно заменяется на 0, и возможно каким-то хером пустой символ заменяется на 0 многократно? Потому что сама замена-то работает, что за пиздец?
Аноним 12/04/21 Пнд 20:23:31 #28 №1994089 
>>1993733
Необязательно отменять сам промис. Важно, чтоб функция перестала его ждать.
Сейчас подумал конкретно над этим — можно внутри функции оборачивать каждый промис в Promise.race(этотПромис, промисНаОтмену), и тогда при срабатывании отмены (правда тут вопрос, каким образом заставить её сработать в нужный момент), функция перестанет ждать изначальный промис.

>>1993785
> не лезь, дебил она тебя сожрёт
А на чём ещё сайты делать?

> >если надо, можно вместо него использовать сет
> чё несёт вообще
Просто подумал, что необязательно именно массив. В сете каждый промис будет встречаться один раз, что как раз подходит, ведь нет смысла несколько раз ждать один и тот же промис.

> >возвращает один общий промис
> ты хочешь странного
Что тут странного? Ведь для чего-то же Promise.all() существует, вот мне нужно что-то похожее, но получше. С нужной задачей Promise.all() не справляется.

> Тебе нужен async queue
>>1993776
> https://caolan.github.io/async/v3/docs.html#queue
Спасибо, попробую.
Аноним 12/04/21 Пнд 20:27:16 #29 №1994094 
>>1994079
>>1994077
Дело в том, что setProductCount принимает только число, ну и в целом там дальше проверок никаких делать не нужно из-за этого. Поэтому я любые введенные значения преобразую в число. Но вот дело в том, что мне просто из начала только для пользователя нужно убирать нули. И преобразования вида +value эти нули из инпута не убирают. Хоть и для дальнейших вычислений все нули пропадают если они стоят вначале.

Дальше в качестве функции я передаю коллбек вида setProductCount={(count) => (handleItemInputCounter(item, count))}. Чтобы потом это поле введенное обрабатывать. Но блядь, почему заменя корректно работает с каким угодно символом, кроме пустого значения? Такое ощущение, что пустое значение заменяется многократно на ноль. Как если в консоли ввести + и пустые кавычки
Аноним 12/04/21 Пнд 20:34:51 #30 №1994104 
>>1994089
>Что тут странного?
Твой общий промис резолвится, потом ты добавляешь новый промис в исходный массив. Ожидаемое поведение?
Аноним 12/04/21 Пнд 20:35:35 #31 №1994107 
>>1994080
Покажи че setProductCount делает. И компонент где используется значение productCount
Аноним 12/04/21 Пнд 20:35:39 #32 №1994108 
>>1994094
А ты значение в инпуте обновляешь?
Аноним 12/04/21 Пнд 20:39:13 #33 №1994111 
>>1994104
> >Что тут странного?
> Твой общий промис резолвится, потом ты добавляешь новый промис в исходный массив. Ожидаемое поведение?
Отсутствие действия. Если в массиве в какой-то момент не остаётся pending промисов (все или завершились, или удалились из массива), то текущая задача выполнена, общий промис завершился, дальше моя функция ничего делать не должна (а если вдруг надо, то её нужно заново вызвать).
Аноним 12/04/21 Пнд 22:31:14 #34 №1994160 
>>1994108
>>1994107
>>1994065

В первый раз пилю свой сендбокс. Вроде бы все правильно сделал
https://codesandbox.io/s/angry-kare-slsf6?file=/basketInput.tsx

Суть в том, что в компоненте basketInput.tsx обрабатывается значение. А в компоненте App значение принимается с помощью коллбека. Может это какой-то лютоебанутый способ, я не знаю, но дело в том, что в реальном проекте туда передается еще и объект товара, так что обновление стейта там происходит чуть сложнее, и поэтому я значение из инпута принимаю таким образом. Но факт в том, что нули НЕ УБИРАЮТСЯ даже в этом упрощенном примере.

И теперь главное:
1.
В этом тестовом примере первый нолик я заменил на цифру 5. Просто удалите начальную еденичку в инпуте клавиатурой (не стрелочками) и когда появится нолик, начните вводите любое число и первый нолик заменится на 5. Если вы в коде, в строке 14 компонента basketInput.tsx поменяете 5 на пустое значение, то все нули будут оставаться на месте.
2.
Если убрать оператор + из 14 строки, и получается, передавать в setProductCount строку, НУЛИ УБИРАЮТСЯ!. Но тогда будет ошибка типизации, так как функция просит только числа. И я не хочу отправлять никуда строку, чтобы потом обрабатывать тип значения, я хочу чтобы компонент возвращал только числа.

Готов принимать хуи ведрами, только объясните в чем тут ошибка.
Аноним 12/04/21 Пнд 22:31:57 #35 №1994162 
>>1994160
Ой пизда, разметку проебал. Я не специально жирно написал, не стукайте
Аноним 12/04/21 Пнд 22:55:03 #36 №1994171 
>>1994160
value={String(productCount)}

У тебя был productCount=4 который ты передал в value инпуту, потом ты ввел "0" первым символом, value у инпута стало "04", а productCount ты посчитал как 4, это 4 передается обратно в value, и поскольку value не поменялось с прошлого раза, то dom можно не теребить, чего реакт и не сделал. Reconciliation!

Когда ты "0" заменяешь на "5" то у тебя получается новые value отличное от предыдущего, потом dom нужно обновить.

Когда ты уже поймешь что When leading zeros occupy the most significant digits of an integer, they could be left blank or omitted for the same numeric value.[3]

[3] - Zegarelli, Mark (2014), Basic Math and Pre-Algebra Workbook For Dummies (2nd ed.), John Wiley & Sons, p. 8, ISBN 9781118828304.
Аноним 12/04/21 Пнд 23:23:40 #37 №1994211 
изображение.png
>>1994171
Спасибо большое, вот такого ответа мне вообще никто не давал, я думал у меня уже крыша едет и я чего-то очевидного не вижу. Наверное очевидное, да, но все же. Спасибо тебе большое
Аноним 12/04/21 Пнд 23:42:07 #38 №1994225 
>>1994211
>вот такого ответа мне вообще никто не давал
А это потому что ты без кода пришел. Ну теперь то ты знаешь
Аноним 13/04/21 Втр 05:31:48 #39 №1994324 
>>1993554 →
Никогда, все тестовые спокойно делаются на хуках, я не представляю для чего редукс сейчас необходим
Аноним 13/04/21 Втр 06:48:22 #40 №1994328 
l
помогите пожалуйста Аноним 13/04/21 Втр 07:42:01 #41 №1994334 
image.png
есть section
в нем лежат список, два заголовка и кнопка
при добавлении hover к section, нужно менять цвет у обоих заголовков и у элементов списка. я так понимаю, это можно сделать только путем использования js. ибо через css я уже несколько часов не могу понять КАК

я очень зеленый во всем этом деле, недавно загорелся желанием и пока начал с html и css, планирую изучать js как только буду достаточно понимать разметку и стили
Аноним 13/04/21 Втр 08:31:55 #42 №1994350 
Анонсы, знает кто как сделать звуковое оповещение в Tampermonkey на одном сайте?

Вот такой код не работает, Хром ругается "Cross-Origin Read Blocking (CORB) blocked cross-origin response". Уже блядь весь реддит перечитал, там везде похожий код, который нихуя не работает вообще

var alrtSound = document.createElement('audio');
alrtSound.src = 'https://notificationsounds.com/wake-up-tones/arpeggio-467';
alrtSound.preload = 'auto';
alrtSound.play();
Аноним 13/04/21 Втр 08:34:49 #43 №1994352 
>>1994334
mySection:hover .zagolovok {
color: myColorWHenHovered;
}
Аноним 13/04/21 Втр 09:28:51 #44 №1994373 
>>1994350
CORB гуглил?
Аноним 13/04/21 Втр 09:30:10 #45 №1994374 
image
image
image
кто шарит за паг: как мне в один миксин захуярить другой миксин?
Аноним 13/04/21 Втр 09:33:58 #46 №1994378 
>>1994374
хотя там не только миксин, а вообще ничего не лезет внутрь, типа надо в шаблоне что-то прописать я понимаю, но не понимаю что
Аноним 13/04/21 Втр 10:03:44 #47 №1994401 
ой всё нашёл надо block написать просто)
Аноним 13/04/21 Втр 10:28:52 #48 №1994412 
image.png
image.png
>>1994352
получается я в скрипте прямо так и пишу, только меняю mySection, zagolovok на свои селекторы? просто я попробовал и не получилось кусочек css и то что он делает приложу, думаю, так будет логичнее
Аноним 13/04/21 Втр 10:29:15 #49 №1994413 
>>1994412
>zagolovok
ААААААААААААА!
Аноним 13/04/21 Втр 10:46:28 #50 №1994420 
1616770511908.jpg
Стоит ли идти работать в salesforce направлении? Поясните за него вкратце неофиту, какие плюсы-минусы и все такое.
Аноним 13/04/21 Втр 10:56:28 #51 №1994421 
>>1994413
смузи уже навернул зумер?
Аноним 13/04/21 Втр 11:11:53 #52 №1994434 
>>1994420
Ну морская пехота это универсальные солдаты, чуть какая заворушка и на передовую кидают, сам смотри как сильно жить хочешь.
Аноним 13/04/21 Втр 12:48:23 #53 №1994515 
>>1994421
Какого смузи, сука? Если хочешь писать на русском - пиздуй в 1С!
Аноним 13/04/21 Втр 12:55:26 #54 №1994522 
14914755291420.jpg
Какого-то хера навернулось форматирование кода в проекте, когда перешёл со стабильной версии VSCode на preview.

Есть какой-нибудь плагин, который приведёт код в относительный порядок? Как их там называют - better visualizer или как-то так.
Аноним 13/04/21 Втр 13:16:39 #55 №1994534 
>>1994522
Как это - навернулось? Автоформат уебало? Может просто настройки где-то на дефолтные откатились?
Аноним 13/04/21 Втр 13:29:31 #56 №1994541 
>>1994534
>Как это - навернулось?
Ну вот так. До обновления были отступы, пробелы, табуляции. Обновился - их нет. Код выглядит как сплошная стена текста, остались только переходы на новую строку.

>Может просто настройки где-то на дефолтные откатились?
Я не сильно давно пользуюсь, поэтому не знаю.
Аноним 13/04/21 Втр 13:48:01 #57 №1994551 
>>1994541
Правой копкой нажми в файле - выбери форматировать.
Аноним 13/04/21 Втр 13:56:49 #58 №1994561 
Есть функция, которая диспатчит экшн, и следом пишет данные из стейта в локал сторадж. При этом в сторадже данные появляются так, как будто никакого диспатча не было. При этом если послать второй экшн, то данные в сторадже изменяется, но так как будто был отослан только один экшн. Я пробовал ставить таймаут на вызов записи в сторадж, но это не помогает. Где я делаю что-то неправильно? Функция литерали двухстрочная:
dispatch(action_object)
localStorage.setItem("...", string)
Аноним 13/04/21 Втр 13:58:40 #59 №1994565 
>>1994561
P.S. Думаю сделать это через промис.
Аноним 13/04/21 Втр 14:22:02 #60 №1994581 
>>1994541

Установи Prettier
Cmd ctrl f зажми
Аноним 13/04/21 Втр 16:15:55 #61 №1994720 
hover.gif
>>1994412
Нет, жс тебе не нужен
Аноним 13/04/21 Втр 16:31:01 #62 №1994754 
image.png
учу жс и крайне не хватает общения с таким же лоускилом или может с кем поопытнее для легкости вкуривания, есть кто со схожим желанием?
Аноним 13/04/21 Втр 17:03:16 #63 №1994800 
>>1994551
Стало лучше, благодарю.

>>1994581
Спасибо, гляну.
Аноним 13/04/21 Втр 17:18:55 #64 №1994812 
>>1994754
Телега @radagant, можешь написать
Аноним 13/04/21 Втр 17:47:46 #65 №1994842 
>>1994754
>>1994812
создайте конфу в телеге для таких, может подтянутся больше людей
больше проблем, больше решений, больше опыта, профит
Аноним 13/04/21 Втр 17:52:51 #66 №1994850 
>>1994842
Хуевая затея, там кроме рака нихуя не будет, мимо олд js тредов
Такие конфы создавались 5 раз, на 2й-3 день они удалялись, пусть лучше в личке общаются
Аноним 13/04/21 Втр 17:54:11 #67 №1994854 
>>1994850
>на 2й-3 день они удалялись
Это потому что кто-то чмоня, которая любит вдыхать только ИЛИТНЫЙ ПЕРДЕЖ. Наоборот, чем больше всякого пиздеца и треша, тем лучше.
Аноним 13/04/21 Втр 17:58:05 #68 №1994862 
>>1994754
Идея хуйня. Вы будете двумя долбоебами которые ничего не знают, вас будет тошнить от друг друга, потому что в друг друге вы будете видеть самих себя.
Аноним 13/04/21 Втр 18:01:01 #69 №1994865 
Есть кнопка, по умолчанию серая. Есть функция, которая при нажатии на эту кнопку меняет её цвет с серого на зелёный. При перезагрузке страницы, цвет меняется на цвет по умолчанию, а я хочу, чтобы он сохранялся. Как я понимаю, это из-за того, что у меня вся страничка отрисовывается тремя файлами HTML, CSS и JS. Соответственно, никакого бэкенда у меня нет, и каждый раз браузер получает один и тот же исходный файл, где кнопка серая. Вопросы следующие: можно ли каким-то образом менять CSS-правило не в браузере, а непосредственно в исходном файле, или обязательно добавлять для этого бэкенд? Если всё таки придётся добавлять его в структуру проекта, то как это сделать? И правильно ли я вообще думаю?
Аноним 13/04/21 Втр 18:02:42 #70 №1994869 
>>1994862
если они развиваются не по одному курсу, то может нормально сработать, допустим сегодня чел1 выучил тему 1, чел2 выучил тему 2, но в любой момент они могут поделиться знаниями друг с другом, или разобраться в теме 3
Аноним 13/04/21 Втр 18:05:15 #71 №1994874 
>>1994865
Цвет кнопки должна для одного человека меняться и за ним привязываться, или чтобы любой человек мог зайти и нажатием опять поменять цвет кнопки для всех?
Аноним 13/04/21 Втр 18:13:57 #72 №1994876 
>>1994869
У меня был похожий опыт, в итоге мы пообщались года 3 назад. Парнишка был с дамбасса, хотел уехать в Харьков если ты все-таки переехал - красавец. В итоге мы пиздели на отвлеченные темы, что там в дамбассе, обсуждали семейные обстоятельства и прочую хуиту, но только не кодинг.
Аноним 13/04/21 Втр 18:14:07 #73 №1994877 
>>1994874
Для одного
Аноним 13/04/21 Втр 18:25:34 #74 №1994897 
>>1994842
Я лс ищу конфу или таких же нубов для совместного решения задач
@peacedoze
Аноним 13/04/21 Втр 18:29:38 #75 №1994903 
кто вкатится тот гей
Аноним 13/04/21 Втр 18:50:48 #76 №1994934 
image.png
image.png
>>1994865
Ещё пока ковырялся со сменой цвета наткнулся на странную фичу. По умолчанию цвет кнопки серый, значит при проверке условия она должна сразу же поменять цвет? Неее, нифига подобного. При первом нажатии кнопка остаётся серой, дальше работает как по маслу. Задался вопросом "Почему так?", добавил перед проверкой условия вывод цвета в консоль, и оказывается, при первом нажатии у кнопки вообще как будто нет цвета. Как это понимать?
Аноним 13/04/21 Втр 18:52:40 #77 №1994937 
>>1994934
Это значит КСС
Аноним 13/04/21 Втр 18:55:21 #78 №1994941 
image.png
>>1994937
В ксс цвет тоже изначально указан как серый
Аноним 13/04/21 Втр 20:00:33 #79 №1995010 
>>1994865
если только для себя, то https://developer.mozilla.org/ru/docs/Web/API/Window/localStorage

а если как нормально, то поднять себе express на бэке это вопрос одного вечера. Делаешь get запрос и post на цвет и усе.
Аноним 13/04/21 Втр 20:01:36 #80 №1995011 
>>1994522
prettify
Аноним 13/04/21 Втр 20:06:55 #81 №1995018 
>>1995010
Спасибо, анонче!
Аноним 13/04/21 Втр 20:21:06 #82 №1995031 
Как заебало нахуй, что невозможно найти вменяемых статей по работе разных модулей (даже популярных) с тайпскриптом. Я такой человек, что для того чтобы понять что-то на 100%, мне мало прочитать доки, мне надо увидеть code example, все целиком, как что работает. Какой-нибудь маленький пример.
И как же заебало, что блять негры и женщины набранные по квотам пишут ебаные статьи с нерабочим кодом. Вот я 5 минут назад читал статью, модуль Х с тайпскриптом и там, блять, ни в одной функции нет типа возвращаемого значения. Ну типо нахуй нужно, угнетатели хуевы понапридумывали говна. Писал негр. В другой статье половина кода типизирована как any. Охуенно. Писала женщина. Пиздец, заебись блять. Охуенный у тебя тайпскрипт.
Я тоже не какой-то суперпрограммист, а скорее всего хуевый. Но каждый ебаный раз, когда я открываю какую-то статью почитать, у меня на каком-то блять подсознательном уровне возникает понимание, что автор нихуя не понимает о чем пишет, а свой код даже не в состоянии запустить.
Аноним 13/04/21 Втр 20:23:23 #83 №1995034 
>>1995031
Но ведь любой модуль работает с тс так же, как и с жс, просто с типами
Аноним 13/04/21 Втр 20:26:10 #84 №1995040 
>>1995034
Нет, нихуя. Уникальные типы возвращаемых значений, уникальные аргументы, интерфейсы и т.д. И приходится либо сидеть и ебать себе мозги чтением лапшеобразного d.ts файла, либо прочитать одну годную статью, где вменяемо используются основные фичи.
Аноним 13/04/21 Втр 20:29:22 #85 №1995045 
Как же заебало, что я не могу понять синтаксис языка и во всех примерах в разные места засовывают разные штуки и добавляют новые поверх, хуй поймешь куда можно всунуть строку, куда нет.
Аноним 13/04/21 Втр 20:32:35 #86 №1995050 
>>1995031
>невозможно найти вменяемых статей по работе разных модулей
Напиши свою.
Аноним 13/04/21 Втр 20:35:03 #87 №1995053 
>>1995040
Про какой модуль речь то?
Аноним 13/04/21 Втр 21:00:20 #88 №1995079 
>>1995045
Найди гайды аля делаем интернет магазин на тс и смотри, ну ты че
Аноним 14/04/21 Срд 00:43:31 #89 №1995364 
>>1995031
https://github.com/moviesearcher-2ch/moviesearcher
Аноним 14/04/21 Срд 05:28:38 #90 №1995469 
>>1995079
> ну ты че
а че ты?
Аноним 14/04/21 Срд 06:38:12 #91 №1995476 
>>1994720
ты просто лучшее, что произошло со мной за сегодняшний день, благодарю
Аноним 14/04/21 Срд 08:40:14 #92 №1995480 
14597804401720.jpg
Мне надо провести code-review, с указанием на возможные ошибки \ проблемы.
Как оценить стоимость выполнения этой работы?

Проблема в том, что я не зарабатываю 300кк\секунду, а аппетиты у фрилансеров дай боже...
Аноним 14/04/21 Срд 08:58:41 #93 №1995485 
>>1995480
Ставка за час • количество часов
Аноним 14/04/21 Срд 09:00:57 #94 №1995486 
>>1995476
та пожалуйста, брат. Всегда обращайся, в JS Thread всегда можешь рассчитывать на нашу помощь. Всего наилучшего
Аноним 14/04/21 Срд 10:39:32 #95 №1995573 
Всем привет.
Работаю над одним проектом, и там есть требование, чтобы при потере соединения(например человек с планшетом зашел в лифт и там нет интернета) приложене продолжало функционировать. При этом в оффлайне оно взаимодействует уже с данными, которые кешируются на клиенте. А потом как только соединение восстановилось, данные "пушились" на бекенд и актуализировались с учетом работы в оффлайн-режиме. Т.е. то что пользователь "наредактировал" в оффлайне должно в любом случае потом улететь в базу как только появится сеть.

Куда копать, чтобы реализовать такую штуку? Пока на ум приходит IndexedDB в API браузера, но не совсем понятно как "отлавливать" автоматически момент когда сеть потеряется/снова вернется. Раз в n минут опрашивать бэкенд и смотреть на статус код ответа кажется ужасным решением, т.к. это не гибко, не безопасно и есть риск потерять данные.
Аноним 14/04/21 Срд 11:11:20 #96 №1995587 
>>1995573
https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API
Аноним 14/04/21 Срд 11:21:16 #97 №1995593 
>>1995573
> но не совсем понятно как "отлавливать" автоматически момент когда сеть потеряется/снова вернется.
Ты почему даже не попробовал в гугл этот вопрос вбить, программист?
Аноним 14/04/21 Срд 11:25:03 #98 №1995597 
Посоветуйте спич рекогнишн модуль который заведётся в электроне. А если он ещё и в оффлайне будет работать это + балл.
Аноним 14/04/21 Срд 11:30:34 #99 №1995601 
>>1995593
Я уже находил https://developer.mozilla.org/ru/docs/Web/API/NavigatorOnLine/onLine

но я хз точно ли это подойдет для задачи, т.к. выглядит слишком просто.

>>1995587
Спасибо, посмотрю.
Аноним 14/04/21 Срд 11:38:01 #100 №1995607 
>>1994941
Может у тебя скрипт до стилей подключен?
Аноним 14/04/21 Срд 11:41:07 #101 №1995609 
>>1994720
А слабо шоб при наведении на один, второй тоже менялся?
Аноним 14/04/21 Срд 11:47:56 #102 №1995612 
>>1995609
На то и каскадность что так можно
Аноним 14/04/21 Срд 12:14:24 #103 №1995621 
>>1995612
Давай покажи.
Аноним 14/04/21 Срд 12:27:37 #104 №1995635 
>>1994754
А ты няшный?
Аноним 14/04/21 Срд 12:33:16 #105 №1995644 
>>1995597
Бамп
Аноним 14/04/21 Срд 12:59:31 #106 №1995661 
1.mov
>>1995621
Аноним 14/04/21 Срд 12:59:37 #107 №1995662 
bti.jpg
krasnyie-linii-na-bti-6.jpg
post-173528-0-60168600-1474423626.jpg
>>1993705 (OP)
Можете посоветовать библиотеку? Которая бы предоставила некий холст, на котором можно позиционировать объекты по XY, который можно приближать-отдалять, перемещать/прокручивать, который бы позволял размещать на себе объекты (на которые бы также распространялось приближение-отдаление), выводить какую-то информацию, удалять ее, ну и пагинацию поддерживал в идеале.

Что-то вроде, только гораздо более сложно, предлагает draw.io, на холсте которого ты рисуешь свои диаграммы или виджет яндекс-карт, на которых можно размещать свои метки и подписи. Мне это нужно для отрисовки планов этажа и размещения на них элементов, подсветки зон и т. д.

В нпм по запросу "canvas" гуглятся соответствующие низкоуровневые штуки, по "floor plan" какие-то непонятные проекты без демок, как найти нужное я хз. Возможно, мне нужна некая рисовалка svg с вставкой элементов поверх, хз. Но делать на голом канвасе или даже на движке карт вроде лифлета кажется сложноватым.

Аноним 14/04/21 Срд 13:29:52 #108 №1995674 
Guys, а нахуя в конструкторе вызывать метод супер, если он не используется на практике? Ну мол дока реакта говорит вызывайте всегда супер когда делаете компонент на классе.
Но пропсы видно в рендере даже если мы не вызываем супер.

Тогда супер для пропсов отпадает, что же остается?
Остается что супер нужен лишь для того что бы зацепить в созданный класс, методы которые прендлежат React.Component? которыми никто не пользуется по сути, у нового класса всегла свои методы.

Правильно я понимаю?
Аноним 14/04/21 Срд 14:01:23 #109 №1995693 
>>1995661
Белое пространство между ними тоже подсвечивает, а не должно.
Аноним 14/04/21 Срд 14:03:35 #110 №1995695 
>>1995693
Шиз все настраивается, читай доку
Аноним 14/04/21 Срд 14:04:42 #111 №1995697 
>>1995674
Это чтобы ты помнил что работаешь на супер фреймворке, пасхалка такая...
Аноним 14/04/21 Срд 14:06:12 #112 №1995699 
>>1995695
Но там написано, что мы не можем получить парент из чайлда! Как же быть? Неужели жс?!
Аноним 14/04/21 Срд 14:06:30 #113 №1995700 
>>1995697Да не я уже понял, это что бы this корректно работал в конструкторе, хуета короче ебаная. Я всегда через стрелочные пишу. Да и ваще на хуках. Щас прост копаюсь в мелких нюансах перед собесом
Аноним 14/04/21 Срд 14:07:29 #114 №1995702 
>>1995699Ты че долбаеб? Это по другому делается, через вложенности. Иди штудируй интернет, ты еще зеленый для этого треда
Аноним 14/04/21 Срд 14:09:01 #115 №1995704 
>>1995662
three.js
Аноним 14/04/21 Срд 14:17:55 #116 №1995716 
>>1995702
<body>
<nav><div /></nav>
<nav><div /></nav>
<nav><div /></nav>
</body>

При наведении на любой див, подсвечиваются только дивы. Тело не трогаешь.
Аноним 14/04/21 Срд 14:35:25 #117 №1995738 
>>1995704
Выглядит как огромный и сложный 3д-движок, ты ничего не перепутал?
Аноним 14/04/21 Срд 14:47:01 #118 №1995748 
>>1995738
Покрывает все твои хотелки. А на готовенькое ты не в тот язык пришел.
Аноним 14/04/21 Срд 14:49:50 #119 №1995752 
image.png
>>1995748
>на готовенькое ты не в тот язык пришел
>JS Thread
Аноним 14/04/21 Срд 14:53:54 #120 №1995754 
>>1995748
Так и канвас все мои хотелки покрывает. И голый жс. И голый ассемблер тоже.
Аноним 14/04/21 Срд 15:00:05 #121 №1995757 
>>1995754
Ну так выбери уже что-нибудь одно и не выебуйся.
Аноним 14/04/21 Срд 15:01:05 #122 №1995758 
>>1995757
>>1995754
Ясно, а можно по делу советов?
>>1995752
Вот-вот.
Аноним 14/04/21 Срд 15:30:25 #123 №1995784 
>>1995716
><div />
Можешь пройти нахуй.
Аноним 14/04/21 Срд 15:31:32 #124 №1995786 
>>1995752
Так жс - вечное запиливание костылей.
Аноним 14/04/21 Срд 15:44:01 #125 №1995795 
>>1995786
Если мне нужно будет пилить костыли я открою вим и буду писать слешинклуд.
Аноним 14/04/21 Срд 16:00:30 #126 №1995814 
>>1995784
>пук среньк
Не сделать без жса. Не сделать.
Аноним 14/04/21 Срд 16:33:01 #127 №1995854 
>>1995814
Ты и html тэг без ЖСа не можешь написать.
Аноним 14/04/21 Срд 17:05:31 #128 №1995902 
Привет двач. Сейчас будет конченная просьба, но тем не менее.
Я 6 лет пишу на ноде, уже дохуя сениор с зп 5к, но есть одна толстая вонючая проблема. Я не понимаю ООП, SOLID и такие простые штуки как DI.
Как, сука, это понять? Может кто-то заделиться материалом для ну совсем тупых?
Аноним 14/04/21 Срд 17:12:59 #129 №1995912 
MongoDB
Аноним 14/04/21 Срд 17:13:03 #130 №1995913 
>>1995902
Хирьянов
Аноним 14/04/21 Срд 17:13:39 #131 №1995915 
>>1995597
Халп, у меня уже пердак горит на этом обоссаном npm нихуя не работает.
Аноним 14/04/21 Срд 17:19:09 #132 №1995929 
>>1995902
Нахуй тебе ООП в жаваскрипте? Если до 5к дорос на ноде без ООП, то может этот ООП нахуй не нужен был?
Аноним 14/04/21 Срд 17:22:21 #133 №1995932 
>>1995913
Спасибо, гляну

>>1995929
На собесах стыдно когда по основам ебут. Тоже считаю что ооп в хуй ебать можно, но идти в ТЛы без понимания такой хуйни нельзя
Аноним 14/04/21 Срд 17:25:27 #134 №1995939 
image.png
>>1993705 (OP)
Не понимаю почему при перетаскивании появляется просто запрещающий значок без самого элемента, а должно быть как на пике
взял тутор даже, там на видео с таким же кодом видно элемент, у меня просто значок
гуглил дев мозила, там в апи днд ничего про такое не сказано
>>1995902
>ООП
я сам сейчас начинаю пользоваться тайпскриптом, не понимаю зачем, но много где нужен
Наверное стоит поделать что-то простенькое типа свое апи для туду листа какого-нибудь + почитать что-то типа введения в ооп
Аноним 14/04/21 Срд 17:25:42 #135 №1995941 
>>1994350
Так по ссылке странице, а не аудио
https://notificationsounds.com/storage/sounds/file-sounds-767-arpeggio.mp3
Аноним 14/04/21 Срд 17:26:00 #136 №1995942 
>>1995915
https://www.npmjs.com/package/ibm-watson
Любая либа, которая не будет отправлять твою хуйню куда-то там в какие-то сервисы будет работать оффлаен. Посмотри вот это, глянь как происходит рекогнишен. Если это тупо апишка, то в оффлайне не оживёт. В остальном тебе похуй куда ставить потобные тулзы - на экспресс ебучий, нест, хапи или электрон - и то и то нода
Аноним 14/04/21 Срд 17:35:37 #137 №1995957 
>>1995607
Стили в head, скрипт перед закрытием body, всё ок
Потестил с другими тегами и параметрами, та же фигня. Есть одна безумная теория, что в DOM, с которым я работаю, значения стилей по умолчанию всегда "", и меняются только когда я начинаю с ними работать. Я шизик, или такое возможно?
Аноним 14/04/21 Срд 17:38:01 #138 №1995965 
>>1995915
Вообще наверное в оффлайне это залупа полная, у тебя в любом случае будет какая-то апишка, которая будет всю эту хуйню слать в какой-то сервис, который тебе уже будет отправлять результат обработки, либо ты просто добавишь толстую жирную либу в свой проект. Не надо так. В зависимости от того, насколько критичен спич рекогнишен можно либо использовать апишки под это дело
https://developer.mozilla.org/en-US/docs/Web/API/SpeechRecognition
либо изъебнуться и прикрутить что-то работающее локально, либо еще больше изъебнуться и прикрутить third party на каких-то сях или пистоне и реализовать интерфейс общения с этой залупой. Но в последнем случае будет высока вероятность, что ты сделаешь велосипед и легче будет поискать что-то готовое. Но с третьей блять стороны есть вероятность что это готовое будет дырявое и нести для твоего проекта потенциальную опасность, поэтому три раза подумай, и уже потом добавляй новую говнолибу в свой проект
>>1995942 -кун
Аноним 14/04/21 Срд 17:46:13 #139 №1995984 
Screenshot from 2021-04-14 17-43-58.png
Жив ли ембер в 2021? Стоит ли на него перекатываться? Предлагают перекатиться, но я хз стоит ли проманивать ривакт.
Аноним 14/04/21 Срд 17:47:53 #140 №1995989 
>>1995984
Жив, но не стоит. Реакт ебош дальше, сейчас на реактовиков ёбнутый спрос, не распыляйся
Аноним 14/04/21 Срд 17:57:39 #141 №1996008 
>>1995989
Спасибо. Просто если загуглить ember 2021, то дохуя хвалебных статей от емберодрочеров.
Аноним 14/04/21 Срд 18:00:19 #142 №1996013 
>>1995957
Я сейчас проверил, там в style вообще пусто, то есть не пусто, а у всех параметров пустая строка. Втф.
Аноним 14/04/21 Срд 18:05:22 #143 №1996020 
>>1996008
Ну пусть дальше дрочат, тебе-то что? Реакт популярнее и востребованнее, это все что тебе надо
Аноним 14/04/21 Срд 18:07:54 #144 №1996030 
>>1995957
Похоже style это именно стили на конкретном элементе а не ксс. Тебе немножко надо переписать логику: добавляй и убирай классы, а не напрямую стиль.
Аноним 14/04/21 Срд 18:20:06 #145 №1996050 
>>1994934
Так, чтобы ДОМу со стилями работать, надо сперва распарсить стили из ксс и прикрутить к элементу, а потом уже считывать значение. Ты можешь проверить это, смотря на элемент в ДОМе - значение появится только после нажатия кнопки.
Соответственно до вызова `style` на элементе никакого значения нет и нужно сперва вызвать `getComputedStyle()`, чтобы его присвоить.
Именно поэтому любой подход, дрочащий стили напрямую через ДОМ - всегда лютый оверхед по сравнению с манипуляцией строки класса или других аттрибутов.
TC39 дал им CSS, который всегда работает на парралельном потоке и ускоряется видимокартой, крась блять кнопки им. Говорит не хочу красить кнопки списком стилей, хочу жрать говно и красить кнопки через костыльную ассинхронщину на основном потоке. И это фронтэндеры блять? Пидоры это, а не фронтэндеры.
А насчёт сохранения состояния кнопки без бэкенда, тут только `localStorage` поможет.
Аноним 14/04/21 Срд 18:20:17 #146 №1996052 
>>1995939
Тайпскрипт не значит ооп
Аноним 14/04/21 Срд 18:25:35 #147 №1996065 
image.png
image.png
>>1996020
Я не споро, анон. Просто финская фирма предлагает перекатиться удаленно к ним на ембер. И периодически вакансии мелькают с ним и сразу в описании ваканси обычно пишут ЕМБЕР ЭТО ОХУЕННО, МЫ РАССКАЖЕМ ПОЧЕМУ ЕМБЕР ОХУЕННЫЙ. Но я вот не особо задумывался правда ли это, а сейчас задумался и ты вот говоришь что ембер говно и статистика тоже не даст соврать. Судя по всему это скоро новый легаси.
Аноним 14/04/21 Срд 18:30:26 #148 №1996074 
>>1996052
А толку от него тогда?
Аноним 14/04/21 Срд 18:36:07 #149 №1996087 
>>1996065
Это уже легаси. Эмбер может прекрасно ложиться на их проект, все такое, но по факту Эмбер нахуй не нужен. Он может и не быть говном, но это никак не поменяет того факта что тебе выгоднее реакт.
У нас на проекте используется hapi. Это сука пиздец, от него блевать хочется. Но архитектор залупится писать новые сервисы на чем угодно кроме него, мол, нихуя не знаю, хапи заебись, остальные фреймворки нинужны.
С эмбером мб та же история и там такой же мамонт сидит и залупится юзать реакт. так-то реакт тоже говно и мб он это прекрасно понимает и поэтому топит за эмбер, но с финансовой стороны вопроса это никак не меняет тот факт, что реакт востребованнее и дороже.
Аноним 14/04/21 Срд 18:58:06 #150 №1996126 
>>1996074
Типы
Аноним 14/04/21 Срд 18:59:14 #151 №1996131 
132321321321123123.png
Аноны приветик. Как быстро ебашить сайтики типо такого?
sorbet.org

Я так понля это что то типо vue но за дизайн что отвечает? типо css фреймворк какой то?
Аноним 14/04/21 Срд 19:01:03 #152 №1996134 
>>1996131
Это называется html/css.
Аноним 14/04/21 Срд 19:01:06 #153 №1996135 
>>1996131
А что тут особенного? Я такую хуйню часа за пол на чистом хтмл+цсс сверстаю.
Аноним 14/04/21 Срд 19:06:56 #154 №1996143 
>>1996135
>>1996134
Есть гайды? как делать именно такие няшные кнопки и верстку?
все равно есть ощущение что они используют ккакой то фреймворк
Аноним 14/04/21 Срд 19:10:57 #155 №1996148 
>>1996143
Академию смотри наверное, я хз.
Аноним 14/04/21 Срд 19:11:23 #156 №1996149 
>>1996143
Делается через фреймворки `border-radius` и `background-color`.
Аноним 14/04/21 Срд 19:26:58 #157 №1996168 
>>1996149
душнила
Аноним 14/04/21 Срд 19:29:55 #158 №1996173 
1616874703136.jpg
>душнила
Аноним 14/04/21 Срд 19:59:08 #159 №1996220 
>>1996131
укради где-то курс анжелы ю беком э фулл стак веб девелопер, блок с хтмл+цсс, там примерно такой сайт пошагово делают
Аноним 14/04/21 Срд 22:29:43 #160 №1996392 
Коллеги, такой вопросец: имеется типикал массив объектов типа {id:intiger, name:string}.
Нужно удалить из него объект, зная только индекс.
Обычно я использую такой подход - https://jsfiddle.net/murbhpek/1/
Или есть более красивое/удобное решение?
Аноним 14/04/21 Срд 22:38:22 #161 №1996401 
>>1996392
findIndex/filter
Аноним 14/04/21 Срд 22:38:51 #162 №1996402 
>>1996392
Через рор это не делается?
нюфак
Аноним 14/04/21 Срд 23:05:52 #163 №1996415 
>>1996401
Да так короче, спс.
Аноним 14/04/21 Срд 23:27:21 #164 №1996426 
допустим я делаю сайт и использую какую нибудь стороннюю либу
есть ли какая нибудь умная тулза которая выкинет из кода этой либы все то что я в своем основном проекте не использовал? то есть уменьшит размер js файла
Аноним 14/04/21 Срд 23:39:59 #165 №1996432 
>>1996426
webpack
Аноним 14/04/21 Срд 23:45:59 #166 №1996437 
>>1996432
по описанию он именно собирает в кучу модули
он разве может удалить прям из кода этих модулей все лишнее?
Аноним 15/04/21 Чтв 00:03:03 #167 №1996444 
>>1996437
Da, https://webpack.js.org/guides/tree-shaking/
Аноним 15/04/21 Чтв 00:04:35 #168 №1996446 
>>1996437
Зависит от модуля и как ты его импортируешь/устанавливаешь в проект.
Аноним 15/04/21 Чтв 00:04:57 #169 №1996448 
>>1996444
пасибочки :3
Аноним 15/04/21 Чтв 00:05:25 #170 №1996449 
>>1996446
да тупо пишу import PIXI.js
Аноним 15/04/21 Чтв 00:10:31 #171 №1996450 
image.png
>>1996449
А придется нет
Аноним 15/04/21 Чтв 00:23:52 #172 №1996455 
>>1996449
Тут вебпук не будет волшебной таблеткой, так как у пикси даже дефолтного импорта нет. С пикси надо пердолиться по-особому и ставить отдельные пакеты вида `@pixi/${name}`. Скорее всего придётся выделить отдельный файл для реэкспорта таких пакетов с одного места, если тебе конечно писать отдельный импорт каждый раз не норм.
Аноним 15/04/21 Чтв 00:27:50 #173 №1996457 
>>1996455
чо то сложновато
наверно выберу пикси.мин версию а потом в вебпаке еще выберу продакшен минификацию
Аноним 15/04/21 Чтв 00:35:56 #174 №1996461 
>>1995662
бамп
Аноним 15/04/21 Чтв 00:38:39 #175 №1996462 
>>1996426
С Пикси не получится, если только не делать кастом билд.

мимо 3 года пикси + тс господин
Аноним 15/04/21 Чтв 00:39:44 #176 №1996465 
>>1995902
Значит ты не сеньор нихуя.
Аноним 15/04/21 Чтв 00:42:13 #177 №1996466 
>>1996462
может ты мне подскажешь
мне пикси нужен для создания viewport на канвасе чтобы можно было его зумить приближать и т д. Впоследствии будет пиксельный редактор типо. Я ведь не ошибся в выборе? я посомтрел и мин версия пикси примерно 500кб плохо конечно но что поделаешь...
Аноним 15/04/21 Чтв 14:57:03 #178 №1996964 
>>1996149
А как же css фреймворк box-shadow?
Аноним 15/04/21 Чтв 15:29:09 #179 №1997025 
>>1995902
Я знаю прямо то что нужно тебе, но не скажу, потому что на дваче нет лички, а плодить конкурентов разбалтывая годноту я не хочу.
Аноним 15/04/21 Чтв 15:38:56 #180 №1997036 
>>1997025
>а плодить конкурентов разбалтывая годноту я не хочу.
Типикал токсик пидораха.
ВСЕ СЕБЕ, ДОМА ПРИХОДИТСЯ, КРУГОМ ВРАГИ, НАМ ВСЕ ЧУЖИМ НИЧЕГО, УХ ПРОВАЛИТЬСЯ БЫ ЭТОМУ ПЕТЬКЕ! ЛИШЬ БЫ НАШ САРАЙ ВЕТРОМ НЕ СДУЛО, УИИИИ ХРЮК ХРЮК. СМОТРИ КАКУЮ ШТУЧКУ ПРИНЕСЛА ТАКОЙ НИ У КОГО НЕТ!
Как хорошо что за бугром люди живут а не орки.
Аноним 15/04/21 Чтв 15:43:45 #181 №1997043 
>>1996149
Вообще то это паттерны нызывается, есть еще инлайновые гайд-лайны
и флексовые митапы.
Ну и смузи элементы тож норм.
Аноним 15/04/21 Чтв 16:26:55 #182 №1997112 
>>1996013
Вот-вот, я об этом же
>>1996030
Да, наверное так будет удобнее, и в целом код станет понятнее. Я буквально только вчера увидел такую реализацию, самому как-то в голову не приходило, что можно вешать стили на классы и навешивать сами классы
Аноним 15/04/21 Чтв 16:27:45 #183 №1997113 
>>1995902
Лучшее краткое объяснение того, что такое ООП(и ФП): http://blog.cleancoder.com/uncle-bob/2018/04/13/FPvsOO.html
Принципы SOLID простым языком: http://blog.cleancoder.com/uncle-bob/2020/10/18/Solid-Relevance.html

Если под DI ты имеешь в виду Dependency Inversion, то в обоих постах она затрагивается, но сама концепция элементарная - инверсия зависимостей позволяет тебе не зависеть напрямую от низкоуровневых деталей в высокоуровневых компонентах, а общаться с ними только через заранее известный интерфейс.

Например, если ты хочешь говорить с базой данных приложения, то без DI ты это сделать можешь только через import db from "db", привязавшись таким образом к той конкретной имплементации, которая лежит в том конкретном файле. С DI ты избавляешься от этого импорта и получаешь БД из какого-то другого места(в рантайме или через контейнер) привязываясь только к публичному интерфейсу, который может реализовать любая имплементация.

Более того, вся концепция ООП была придумана и существует только для того, чтобы DI реализовывать, потому что это настолько важный и удобный паттерн.
Аноним 15/04/21 Чтв 16:33:24 #184 №1997122 
Какая есть простенькая либа для валидации JSON на клиенте? Нужно чисто проверка полей а-ля required: True, empty: False, type: number. AJV же больше для сервер-сайда заточен?
Аноним 15/04/21 Чтв 16:38:55 #185 №1997130 
download.jpeg
>>1997122
https://www.npmjs.com/package/json-validation
Аноним 15/04/21 Чтв 18:40:52 #186 №1997278 
Пацаны как думаете если уже сам в ручную могу с любыми api работать, вывести инфу, настроить поиск, собрать электронный магазин на коленке, редукс сторы и хуки тож пишу уже по памяти, базовый js всякие замыкания, эвентлупы и прочую дрисню знаю и подавно. Есть смысл аплаиться на джунчика? Я знаю точно что да, но мне вот пришла в голову мысль угареть по алгоритамам на пару месяцев, книжки и туториалы посмотреть что бы в ооп шпрехать сильнее. Есть смысл алгоритмы изучать, или реакто макакам на алгоритмы похуй?
Аноним 15/04/21 Чтв 18:41:29 #187 №1997280 
>>1997278
Или лучше два месяца потратить на ковыряние реакта дальше?
Аноним 15/04/21 Чтв 18:47:52 #188 №1997284 
>>1997278
На алгоритмы в целом похер, самые нужные все уже давно придуманы и лежат в библиотеках. Лучше учись в чистый код, рефакторинг, технологии и методологии разработки ПО.
Аноним 15/04/21 Чтв 18:53:50 #189 №1997293 
>>1997284
Ok spasibo
Аноним 15/04/21 Чтв 18:56:20 #190 №1997294 
image
>>1997284
Кстати насчет чистого кода, в тему будет эта книжка, или другие какие интересные есть?
Или ты вообще про другое?
Аноним 15/04/21 Чтв 19:49:06 #191 №1997342 
>>1997284
Эти вещи изучать лучше на практике. То есть - пиздовать на джуна.
Аноним 15/04/21 Чтв 19:59:40 #192 №1997349 
1618509482752.jpg
Привет, а вы можете показать какие-нибудь свои работы? Похуй даже скрин пойдет, а то я вообще не знаю с чего начать и к чему стремиться. Идей нуль.
Аноним 15/04/21 Чтв 20:02:30 #193 №1997350 
>>1997349
Смотришь на любой популярный проект и делаешь его клон. Как можешь так и делаешь
Аноним 15/04/21 Чтв 20:05:01 #194 №1997356 
>>1997350
А дальше что? Что мне с ним делать, если я даже не знаю с какой стороны подходить? Я только сегодня узнал, что макеты отдельные люди делают.
Аноним 15/04/21 Чтв 20:09:21 #195 №1997360 
>>1997356
Скачай с торента курсы и посмотри че там делают
Аноним 15/04/21 Чтв 20:18:24 #196 №1997374 
>>1997349
Может за тебя ещë и работу сделать? Работай, пëс.
Аноним 15/04/21 Чтв 22:19:22 #197 №1997468 
>>1997349
Тут нет ни у кого примеров работ. На дваче одни теоретики сидят.
Миллионы никогда не работавших вкатывальщиков под NDA бога.
Аноним 15/04/21 Чтв 23:08:09 #198 №1997499 
Реально ли выучить реакт за ночь?
Аноним 15/04/21 Чтв 23:23:04 #199 №1997513 
>>1997499
10 минут достаточно. Че там учить, это же просто рендер-функция
Аноним 16/04/21 Птн 12:43:58 #200 №1997885 
12231312312.png
https://www.npmjs.com/package/idb
Это код с официальной страницы пакета IDB для упрощения работы с indexedDB. Вопрос на миллион долларов: что здесь не так?
Поясняю: может быть я пиздец тупой и вижу ошибку там, где ее нет. А может быть все норм и я просто не понимаю каких-то осоебнностей использования языка. Короче, полчаса-час на ответы, либо до трех первых ответов, либо до первого угадавшего, а потом посмотрим, обосрался ли я.
Аноним 16/04/21 Птн 12:44:26 #201 №1997887 
>>1997280
я конечно дико извиняюсь но что в этом реакте ковырять эти два месяца?
Аноним 16/04/21 Птн 12:59:24 #202 №1997904 
>>1997887
Проектики разные в портфолио пилить, хотя у меня их уже 5 штук спа в портфолио полноценных. Да пришел к выводу что буду готовиться к собесам месяц, потом пойду их проходить. У меня такое ощущение что вот чегото не хватает сейчас, а именно на собесе и зададут такие вопросы которые я не знаю, поэтому постоянно готовлюсь дотошно что бы быть сильным на вопросах. Но уже складывается ощущение что можно и на мидла идти кек, короче свои тараканы в голове в плане подготовки, не хочу выглядеть как васян вкатун с курсов, которых 90% и которые сливаются на собесах
Аноним 16/04/21 Птн 13:02:37 #203 №1997909 
>>1997278
Структуры освой, для ООП можешь паттерны глянуть.
Аноним 16/04/21 Птн 13:16:54 #204 №1997925 
>>1997885
>что бы вы улучшили в этом коде?
Аноним 16/04/21 Птн 13:21:28 #205 №1997930 
>>1997904
>на собесе и зададут такие вопросы которые я не знаю
Поэтому нужно брать количеством, а не выжидать конкретную "свою" вакансию. Джуну надо каждый день подаваться куда только можно. А так можно вечно ждать сидеть, это глупо.
Аноним 16/04/21 Птн 13:26:47 #206 №1997941 
>>1995662
Анон, помогай. Не хочу на каком-нибудь лифлете или опенлеерс низкоуровневую хуйню городить.
Аноним 16/04/21 Птн 13:42:50 #207 №1997955 
>>1997941
https://bfy.tw/QkWk
Аноним 16/04/21 Птн 13:47:47 #208 №1997964 
>>1997955
ОЙ не ту ссылку кинул,
https://vlad0007.github.io/polyhedron1/Plane/Chapter_03.html
Аноним 16/04/21 Птн 14:16:40 #209 №1997999 
>>1993705 (OP)
Как игнорировать собственное превосходство над другими кодерками и нормально работать? Вот не могу бля нормально продолжать кодить на жс, пока осознаю что нахожусь много выше всякого быдла на жаве, питонах, шарпе и прочем говне. Всякий раз как юзаю стрелочную функцию, ахуеваю от удобства и продвинутости жс по сравнению со всякими быдлоподелками
Аноним 16/04/21 Птн 14:20:05 #210 №1998003 
Я, видимо, чего-то не понимаю. Пытаюсь освоить indexedDB с idb. Я не могу понять как мне этим пользоваться. Вот я создал базу. Теперь я хочу написать функцию, которая принимает аргумент и сует его в базу. Везде в доках делают так:
async function newDB() {
const database = await openDB("huita", 1, {
//createStore
//createIndex
//blahblahblah
});
//реализация CRUD
await database.add("huita", someShit)
await database.delete("huita", someShit)
...
}

Я один искренне не понимаю, как потом этим пользоваться? Почему везде круд пишут внутри функции-создателя БД. Окей, известно, что в ЖС функция это объект. То есть блять мне на полном серьезе предлагают потом к круду лезть через жопу путем вызова newDB.functionAdd()? Я просто не понимаю как этим пользоваться что куда писать?
Более здравым мне кажется вариант с разбиением этой хуйни на куски. Типо:
async function newDB() {
const db = await openDB("huita", 1, {
//createStore
//createIndex
//blahblahblah
});
}

async function addToDB(someShit) {
const database = await openDB("huita", 1, {
await database.add("huita", someShit)
}); и т.д.
}

Но этого почему-то нигде нет. И даже в полном примере Article store просто хуячат все в создающую функцию без задней мысли, будто бы все операции с базой проводятся из этого одного файла, будто бы не может возникнуть необходимость из рандомного файла сделать обращение к базе, чтобы, например, что-то считать. Я просто блять не понимаю. И нигде в интернете ничего внятно не объясняется, у пакета миллион загрузок в неделю и 0 инфы. Может быть кто-то с этой хуйней работал? Дайте код посмотреть.
Аноним 16/04/21 Птн 14:21:21 #211 №1998005 
Dirty-Tony-Ryan-Allen-Asian-Guy-In-Suit-With-A-Big-Asian-Co[...].jpg
>>1997999
Аноним 16/04/21 Птн 16:12:02 #212 №1998125 
Есть у кого решение проблемы для nodejs+express? Я должен пост обработать с кодировкой win-1251, мне его присылают, мой сервер сразу выбрасывает ошибку UnsupportedMediaTypeError: unsupported charset "WINDOWS-1251". То есть он ничего не успевает сделать. Как обработать пост с такой кодировкой на express?
Аноним 16/04/21 Птн 16:17:16 #213 №1998132 
>>1995662
http://fabricjs.com/
Аноним 16/04/21 Птн 16:27:29 #214 №1998150 
Есть приложуха на рякте. Надо её натянуть на электрон прикрутив несколько фич с последнего. Посоветуйте статей каких-нибудь как это лучше всего и безболезненно сделать.
Аноним 16/04/21 Птн 16:58:00 #215 №1998175 
Только что узнал что в MongoDB нет автоинкремента (лол). Я уверен что над Монго работали не белые люди.
Аноним 16/04/21 Птн 17:56:56 #216 №1998227 
Сап, помогите начинающему плз.

Есть две функции, которые делают то же самое - таймер обратного отсчета. Первая универсальная, у нее есть аргументы minutes, seconds. Вторая работает напрямую со значением из глобал скоупа (переменными pomodoroMinutes, pomodoroSeconds).

Логика у функций одинаковая, но вторая работает нормально, а первая как-то странно. Вторая выводит как надо: "1:59", "1:58", ... , "0:00". Первая выводит: "1:59", "1:59", ... , "1:59"

И не понимаю, это из-за интервала нельзя в функции значение из глобал скоупа менять или почему так нахуй? В первой функции проверял minutes === pomodoroMinutes, когда вызываешь ее с pomodoroMinutes, но эта хуйня все равно не работает!

https://jsbin.com/nuxedalaki/1/edit?js,console
Аноним 16/04/21 Птн 17:58:48 #217 №1998231 
>>1998227

Прикрепил не тот жсбин. Вот последний: https://jsbin.com/bijiquxixu/1/edit?js,console
Аноним 16/04/21 Птн 18:02:09 #218 №1998237 
>>1998175
Инкрементные идентификаторы - плохая идея. Чтобы нельзя было проитерировать всех твоих клиентов используется UUUID
Аноним 16/04/21 Птн 18:24:12 #219 №1998263 
Ну сделал я эту вашу тудушку спустя час чтения за реахт. Дальше то что?
Аноним 16/04/21 Птн 18:24:58 #220 №1998265 
>>1998263
Вставай на колени и открывай рот
Аноним 16/04/21 Птн 18:26:25 #221 №1998268 
>>1998265
Неосилятор, плиз.
Аноним 16/04/21 Птн 19:08:59 #222 №1998330 
>>1998237
Ебать ты долбоеб братишка. Хуже дебила, который для идентификации данных лепит где попало uuid вместо автоинкремента, может быть только червь-пидор. Особенно приятно работать в админке с таким дерьмищем, когда ты не можешь посмотреть заказ 123, тебе нужно смотреть заказ 22af49d4-8e7e-4666-8bd6-d6e0f6b41ed6 и хочется ебало набить разработчику.

uuid имеет смысл использовать только если данные сильно публичные, да и то не во всех случаях, да и то не uuid, а что-нибудь более читаемое.
Аноним 16/04/21 Птн 19:09:34 #223 №1998332 
Есть приложуха, которая работает с indexedDB. Как мне правильнее организовать логику работы? Вносить все изменения в стейт и потом просто сохранять их в БД, или все операции проводить с БД, как если бы это была полноценная серверная БД, а потом делать setState(getDataFromBD)?
Аноним 16/04/21 Птн 20:25:33 #224 №1998413 
image
Че за хуйня анон? блок не правильно закрывается, в шаблонной строке, вчера все норм было, седня смотрю усы не правильно видят друг-друга, код вроде работает, но это парсер наверно хуй забивает и пропускает. Но разметка говорит что есть вопросики.

Собсно на пике. подчеркнул красной полоской.

Es lint колбасит или шо? Не моху понять нихуя че он ругается!
Аноним 16/04/21 Птн 20:48:50 #225 №1998427 
image.png
>>1998332
Хорошо что ты спросил
Аноним 16/04/21 Птн 20:50:17 #226 №1998430 
>>1998413
Так наведи на ошибку свой указатель то, там в тултипе обычно пишут кто из плагинов недоволен
Аноним 16/04/21 Птн 20:53:09 #227 №1998432 
image
>>1998430
Как таковой ошибки нет, просто плагин ругается как буд-то скобки не закрыты, и выдает одну красную в конце.
Я удалил часть этой шаблонной строки - все заебись, вставляюю ее обратно опять разметка в коде едет, хз че за баг, но я почитал на мдн, с шаблонной строкой все праввильно делаю, походу vs code тупит. Я даж переписал строку заного, нихуя не поменялось. ДУмал мож пробел какой закрался.
Аноним 16/04/21 Птн 20:56:36 #228 №1998437 
>>1997955
>>1997964
Но я не ищу веб-геометрию, анон, спасибо конечно, добра тебе, но я вообще ни разу не ищу веб-геометрию на вебгл, я вообще не ищу параметризованного рисования примитивов, иначе бы взял канвас или хотя бы д3 какой-нибудь. Я ищу либу для отрисовки векторного фона по определенной сетке, поверх которого буду накладывать другие векторные объекты, по наведению-нажатию на которые буду выводить тултипы (или еще как-то обрабатывать эти события), и все это с приблизить-отдалить-влево-вправо-вверх-вниз. Так, как если бы мне надо было отрисовать план здания. Что-то вроде я находил тут
https://codepen.io/zachdunn/pen/VvRXdP
но визуально как-то стремно смотрится (периодически залезаешь за край карты, масштабирование смазанное и т. д.). Если кто не поленится смотреть - замените https на http
тут
https://gojs.net/latest/projects/floorplanner/FloorPlanner.html
и на хабре советовали мертвые ссылки на либы для отрисовки svg
https://qna.habr.com/q/372165
Я хотел нечто подобное, только в более вылизанном виде. >>1995662
Вот типа того, да, вот этот пример особенно.
https://qna.habr.com/q/372165
но canvas... У них, я так понял, не решена проблема с z-index, а перерисовывать заново при каждом изменении - ну хуй его знает... Особенно, когда надо поверх пихать плашки всякие всплывающие, тексты и т. д.
Аноним 16/04/21 Птн 20:59:55 #229 №1998438 
>>1998432
А, ну так это bracket colorizer значит с ума сходит
Ну ты все равно такие строки то не пиши, нечитабельно же, это код, а не фильм Нолана
Аноним 16/04/21 Птн 21:01:27 #230 №1998441 
>>1998437
На форчане спроси, там подскажут-
https://boards.4channel.org/g/thread/81168658
https://boards.4channel.org/g/thread/81176255
или на SO создай тему
Аноним 16/04/21 Птн 21:05:30 #231 №1998449 
>>1998437
По ссылкам не ходил, но прост попробуй на лифлете, там можно поменять геокарту на твою кастомную карту, и есть плагины для рисования полигончиков почти без багов.
Ну и нет ничего проблемного в перерисовке 60к/с, твою видеокарту именно для этого и делали
Аноним 16/04/21 Птн 21:23:06 #232 №1998465 
>>1998132
Вот типа того, да, вот этот пример особенно.
http://fabricjs.com/build-minimap
но canvas... У них, я так понял, не решена проблема с z-index, а перерисовывать заново при каждом изменении - ну хуй его знает... Особенно, когда надо поверх пихать плашки всякие всплывающие, тексты и т. д.
>>1998449
Да я хотел что-то окологотовое. Буду смотреть на фабрик.жс, наверное, выглядит охуенно.
Аноним 16/04/21 Птн 21:53:53 #233 №1998484 
Не по6имаю нахуя высрали хук с контекстом если есть редукс?
Зачем они плодят сущности?
Аноним 16/04/21 Птн 22:21:41 #234 №1998499 
Курсы на Hexlet по NodeJS хорошие для вката?
Аноним 16/04/21 Птн 23:57:40 #235 №1998580 
>>1998484
Изкаропки. Если у тебя не очень большое приложение и нету кучи сайдэффектов, то контекст вполне себе интересная штучка.
Аноним 16/04/21 Птн 23:58:19 #236 №1998582 
>>1998484
>Зачем они плодят сущности?
А вообще это суть фронтенда. Придумать для одной задачи хуеву тучу инструментов, которые со временем станут депрекейтед.
Аноним 17/04/21 Суб 00:21:36 #237 №1998596 
>>1998330
Нихуя тебя подорвало, свидетель инкрементных индикаторов.
Если жаба душит лишние символы юзать - возьми рандомный код на 5-7 латинских букв.
Аноним 17/04/21 Суб 00:29:42 #238 №1998607 
>>1998484
Потому что редух - ехал бойлерплейт через бойлерплейт.
Аноним 17/04/21 Суб 00:40:57 #239 №1998616 
>>1998332
Хуярить свой модуль, который в зависимости от поддержки indexedDB будет хранить состояние в редуксе/indexedDB/локалсторэдж, а компоненты будут только пропукивать объекты в специально выделенные функции, от результата вызова которых зависит состояние компонента.
Аноним 17/04/21 Суб 00:57:08 #240 №1998625 
>>1998227
Ты берешь примитивное значение из глобала и передаешь аргументом в функцию. Функция создает новую ссылку на свою переменную. Ты ее меняешь и она пропадает после выхода из контекста.

Вот тебе часы наоборот. https://replit.com/@CharonIV/VeneratedTastyProperty#index.js

Либо ищи библу
Аноним 17/04/21 Суб 01:59:41 #241 №1998645 
Какие есть хорошие видеокурсы с торрента?
Аноним 17/04/21 Суб 02:42:03 #242 №1998656 
как аргументировать команду перейти на хуки с классов, кроме как что классы это устаревшее говно и ооп вообще для пидоров? есть ли более нормальные аргументы?
Аноним 17/04/21 Суб 02:46:00 #243 №1998658 
>>1998656
Никак, продолжайте гадать над значением this и ритуально биндить методы класса.
Аноним 17/04/21 Суб 02:46:10 #244 №1998659 
>>1998656
Код чище, меньше кода, лучше developer experience, работать с хуками проще и удобнее
Аноним 17/04/21 Суб 10:32:03 #245 №1998839 
Насколько вообще оправдано юзать стрелочные функции 24\7\365. Хуячить их везде, где нужно и где не нужно. Забыть нахуй что существует слово function и хуярить исключительно стрелочные?
Насколько сильно стрелочные функции влияют на производительность?
Аноним 17/04/21 Суб 11:21:29 #246 №1998864 
>>1998839
шиз, по необходиомости, везде не получится юзать, читай книжки в шапке
Аноним 17/04/21 Суб 11:52:13 #247 №1998874 
>>1998656
Классовые компоненты имеют свои преимущества. Например любые методы, которые ты объявляешь не будут пересоздаваться при каждом чихе. В функциональном компоненте это надо все оборачивать в useCallback. Нужно придумывать костыли, чтобы имитировать первый рендер и последующие. Если копнуть уже глубже, когда куча методов не было дипрекейтед, то там можно так гибко настроить, что сейчас будет полной головной болью.

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

Аноним 17/04/21 Суб 12:18:55 #248 №1998885 
У меня в проекте модульное ксс, много модулей и один отдельный ксс "простой" файл. Вебпак настроен чтобы компилировать и модули и не модули. Это норм, что мне этот "простой" файл приходится инклюдить в один из модулей, чтобы с него стили брались? Разве вебпак не должен автоматически компилировать все, не важно заинклюдил я его или нет?
Аноним 17/04/21 Суб 12:42:08 #249 №1998894 
>>1998874
>Например любые методы, которые ты объявляешь не будут пересоздаваться при каждом чихе
Но ведь денчик сказал что функции относятся к рендеру, а не к инстансу
>надо все оборачивать в useCallback
А может и не надо
>имитировать первый рендер и последующие
Почему это должно значить? Надо ведь декларативненько, а не "вот сейчас компонент отрендерится в первый раз и тут мы..."
>придумали решение, что методы сразу биндятся
Спасибо, уже не надо
Аноним 17/04/21 Суб 12:44:04 #250 №1998898 
>>1998885
Не должен. Сделай импорт в рут компоненте или скажи вебпаку явно, что этот файл надо тоже собирать
Аноним 17/04/21 Суб 13:22:36 #251 №1998931 
И так начал учить реакт. Попробовал дергать api по примеру с https://ru.reactjs.org/docs/faq-ajax.html , норм. Как теперь, последовательно, отправить 2 запрос добавив в УРЛ параметр полученный в первом запросе( к примеру ключ,токен,фильтр и.тд.)?
Аноним 17/04/21 Суб 13:48:23 #252 №1998977 
>>1998931
>И так
Как?
Аноним 17/04/21 Суб 14:00:19 #253 №1998987 
>>1998931
Что тебе мешает в then сделать следующий запрос?
Аноним 17/04/21 Суб 14:01:35 #254 №1998988 
>>1993705 (OP)
Все знают что в жс-системе надо быть модным подтянутым пацанчиком, а то тебя обоссут и определят в петушиный угол 3 пхпшникам, поэтому есть вопрос: зашкварно ли в 2021 писать function для объявления функций?
Аноним 17/04/21 Суб 14:03:47 #255 №1998991 
>>1998656
Не надо никого уговаривать, пусть сидят в своём болотце классов пока код не станет совсем легаси-помойкой.

>>1998874
>Нужно придумывать костыли, чтобы имитировать первый рендер и последующие.
А может, проблема не в реакте, а в отсутствии логики у разработчиков, которые пишут говно и неспособности читать?
Аноним 17/04/21 Суб 14:04:56 #256 №1998993 
>>1998988
Ты бы сходил и почитал разницу, ёба. Стрелки - это не синтактический сахар для function, это ДРУГОЕ.
Аноним 17/04/21 Суб 14:09:13 #257 №1999000 
>>1998987
Та думал так, только как тогда сделать проверку на ошибки

>if(error===null)

?

>>1998977
Нахожу тз
Аноним 17/04/21 Суб 14:13:20 #258 №1999003 
>>1998993
Ебанашка, кто в 2021 юзает this в функциях, м?
недофреймворки, форсирующие недоооп, применяемые полутора анонами меня не интересуют
Аноним 17/04/21 Суб 14:18:14 #259 №1999011 
У меня в приложении кондишонал рендеринг, типо такого:
{условие ? компонент : затычка}
Есть проблема. При обновлении страницы на 1 наносекунду появляется затычка и тут же заменяется на компонент. Лично меня это раздражает, хотя я понимаю, что это потому что условие не выполняется мгновенно. Это можно как-нибудь пофиксить или просто хуй забить?
Аноним 17/04/21 Суб 14:42:41 #260 №1999036 
>>1999000
Для ошибок есть catch, для проверка запоса в then можешь использовать response && response чтобы андифайнд не принять
Аноним 17/04/21 Суб 14:43:51 #261 №1999039 
>>1999003
Ты че кретин? Ты вообще не вкуриваешь про что говоришь, просто съеби зеленый
Аноним 17/04/21 Суб 14:45:38 #262 №1999042 
>>1999011
Промис напиши, в then укажи прелоадер, then будет срабатывать только когда пройдет проверка натзагрузку, и прилоадер лишний раз не покажется
Аноним 17/04/21 Суб 14:55:19 #263 №1999054 
>>1999042
Еще можно в дид компонент маунт не вставлять прелоадер, а вставить его в компонент апдейт, то при первой загрузке страницы он тоже не будет показываться, вариаций много короче
Аноним 17/04/21 Суб 18:35:47 #264 №1999370 
>>1999011
Сделать так, чтобы условие выполнялось мгновенно. Не благодари.
Аноним 17/04/21 Суб 18:38:46 #265 №1999374 
Сап, сломал всю голову, но не могу понять как это сделать, если кто то подскажет в каком направлении двигаться буду очень благодарен.

Вообщем, по клику требуется найти похожие элементы на матрице, которые примыкают друг к другу, схематично изображу так.

1|1|2
1|2|2
1|1|2

То есть, необходимо найти цифру 2, по которой кликнули.
Пробовал создать многомерный массив, и проходить по нему циклом, но не получилось, встал вопрос, каким образом искать элемент сверху и снизу. Может есть какой то другой способ нахождения примыкающих друг другу элементов, чтобы были найдены элементы по горизонтали и по вертикали?

Аноним 17/04/21 Суб 19:44:31 #266 №1999444 
>>1999374
Ну смотри, я вообще ни разу не математик, а реакт-формодрочер, поэтому мое решение скорей всего будет неоптимальным. Но допустим смотри, мы щелкаем на самой правой верхней двойке. Это будет грубо говоря по координатам 3,1 (3 по горизонтали, 1 по вертикали). Нужно проверять соседние координаты, соответствуют ли они кликаемому числу. То есть какие соседние элементы у 3,1? это 2,1 и 3,2. Думаю мысль понятна.
Аноним 17/04/21 Суб 19:47:08 #267 №1999449 
>>1999444
Соседние координаты от щелчка если мы за основу берем х,y (без диагонали) это:
1) (x, y-1)
2) (x+1, y)
3) (x, y+1)
4) (x-1, y)
Ну и делаешь проверку чтобы ни одна координата не было меньше 0.
Аноним 17/04/21 Суб 20:15:17 #268 №1999480 
>>1998656
Что за проект?
Размер кодовой базы?
Твой опыт разработки?
Кто ты по жизни в этой команде?
Аноним 17/04/21 Суб 20:19:47 #269 №1999488 
>>1999480
Да это очередной залетный зумерок. 2 месяца на проекте посидел, видосики на ютабе посмотрел и все - гуру нахуй, можно уже "тупым дедам" советовать что и как надо делать
Примечательно что предложить что-то такие клованы всегда рады, но реализовывать - это не к ним, пусть кто-нибудь другой пытается воплотить их великую мечту в реальность и переписать 5 десятков модулей под новый стиль
Аноним 17/04/21 Суб 20:53:37 #270 №1999539 
>>1998656
>классы это устаревшее говно и ооп вообще для пидоров
Отличные аргументы из категории "инфлюенсер так сказал"
Аноним 17/04/21 Суб 21:00:18 #271 №1999545 
>>1999539
Интересно как он будет пытаться привязать это к тому что весь ангуляр например априори построен на TS и на классах
Аноним 17/04/21 Суб 21:02:35 #272 №1999549 
>>1999539
https://blog.bitsrc.io/6-reasons-to-use-react-hooks-instead-of-classes-7e3ee745fe04
Аноним 17/04/21 Суб 21:03:32 #273 №1999550 
Пиздец тут копрофилы на классы слетелись
Аноним 17/04/21 Суб 21:04:54 #274 №1999551 
>>1998885
Схуёв ли он должен импортировать файлы за пределами бандла?
Аноним 17/04/21 Суб 21:05:30 #275 №1999552 
>>1999549
Блохастый, ты понимаешь вообще каково это переписывать уже готовый проект под свои хотелки? Хоть делал когда-то такое сам, а?
Аноним 17/04/21 Суб 21:06:59 #276 №1999553 
>>1999011
{условие && компонент}
Не благодари.
Аноним 17/04/21 Суб 21:10:37 #277 №1999555 
>>1999552
Не переписывать а потихоньку внедрять хуки. То есть новый функционал делать полностью с хуками. Старый пусть на классах остается. В чем проблема?
Аноним 17/04/21 Суб 21:19:42 #278 №1999561 
>>1999555
Пердеды не смогут переварить `function` где либо в проекте.
Аноним 17/04/21 Суб 21:55:12 #279 №1999590 
>>1999561
пусть пишут на const Component = ({}) => {}

Тут нет слова function

Уже три года как реакт дал им божественные хуки с возможностью дописывать кастомные хуки, но нет, они будут обмазываться классами. Хотя достаточно обновить ривакт до 16.8+ и просто начинать новые компоненты писать на хуках, а старые или переписывать по мере возможности или вообще оставить как есть.
Аноним 17/04/21 Суб 22:24:04 #280 №1999635 
>>1999553
Охуенно ты придумал, конечно, все равно что если бы никакого условия и не было. А заглушку Пушкин рендерить будет?
Аноним 17/04/21 Суб 22:37:35 #281 №1999649 
>>1999635
Так ты же плачешься, что заглушка рендерится.
Аноним 18/04/21 Вск 00:40:12 #282 №1999728 
>>1999011
Флаг проверяй, isFirstLoad к примеру, в useEffect сбрасывай
Аноним 18/04/21 Вск 00:49:39 #283 №1999742 
Сап ангулярщики подскажите как мне подменять компоненты в build-time ?

те есть у меня компонент core/search-form
я хочу сбилдить фронт для клиента, у которого другие требования к форме поиска ( другая верстка/ф-ционал )
сделал пакет clientName в нем реализовал форму поиска как бы мне подцепить ее в движок вместо старой?

нагуглил это
https://stackoverflow.com/questions/43933783/angular-pass-component-to-a-component

проблема остается в том что мне нужно передать новую "измененную форму" с самого верху приложения, у вас в ангуляре есть чето типа реактового контекста для этого?

Аноним 18/04/21 Вск 00:50:23 #284 №1999743 
>>1999742
Аноним 18/04/21 Вск 00:51:41 #285 №1999745 
>>1999742
алсо как вы делаете инпуты ( пропсы компонента ) обязательными?
ну те чтобы если я в верстке пишу <search-form /> он бы мне не давал его отрендерить покуда я не пропишу <search-form lang='ru' /> например ?
Аноним 18/04/21 Вск 00:57:40 #286 №1999754 
>>1998987
ok,получилось,спасибо. ура
Теперь надо будет отсортировать и прикрутить к веб формам.
Аноним 18/04/21 Вск 01:22:40 #287 №1999773 
>>1999742
>чето типа реактового контекста
инжектор
>как вы делаете инпуты ( пропсы компонента ) обязательными
никак
Аноним 18/04/21 Вск 03:21:32 #288 №1999816 
>>1999773
> инжектор
https://angular.io/guide/dependency-injection
это? Не вижу инфы как в билд тайме подменить компонент, тут же только сервис можно заинжектить не?

> никак
фу
Аноним 18/04/21 Вск 09:04:31 #289 №1999921 
>>1999742
Я делал через environment. Правда только с сервисами, но думаю так же можно и компоненты.
Аноним 18/04/21 Вск 11:37:36 #290 №2000068 
анчоусы, реквестирую помощь. сейчас делаю тз и там один из пунктов написать свой дейтпикер. то есть полностью на ванилле. без либ, jquery и тп. подскажите алгоритм и как делать то такое вообще? уже много че в инете перекопал но там пиздец какой то. везде jquery ебучий, либо же какие то компонентики для фреймворков. отдельная благодарность если поделитесь линками на готовые/полуготовые вариант
Аноним 18/04/21 Вск 13:07:56 #291 №2000157 
>>2000068
получаешь даты в году (date-fns/moment.js) с разбивкой по месяцам неделям и дням

отрисовываешь в цикле

проблемы?
Аноним 18/04/21 Вск 13:57:28 #292 №2000189 
>>2000157
>без либ
Аноним 18/04/21 Вск 14:02:24 #293 №2000194 
Как описать в тс такой тип:
something: any = {
"строка-ключ": {
"строка-ключ": [строка, еще строки...],
еще много таких пар строка-массив...
},
еще много таких объектов...
}
?
Аноним 18/04/21 Вск 14:07:48 #294 №2000198 
>>2000194
Record
Аноним 18/04/21 Вск 14:14:46 #295 №2000207 
>>2000068
Делай мвс. Контролер принимает инпут (мышь, стрелки) и обновляет модель. Вьюха подписана на обновления модели. Модель простая, это текущая дата в милисекундах. Модель преобразуешь в массив чисел - дни текущей недели. этот массив посылаешь во вьюху при обновлении модели. Контроллер обновляет модель тривиально +-10006060247
Аноним 18/04/21 Вск 14:15:49 #296 №2000209 
>>2000207
+-1000x60x60x24x7
Аноним 18/04/21 Вск 14:28:26 #297 №2000220 
>>2000198
Получается мне надо заранее знать все названия ключей? Хуево чо.
Аноним 18/04/21 Вск 14:31:32 #298 №2000221 
>>2000220
Нет, Record - это когда не знаешь названия ключей
Аноним 18/04/21 Вск 14:32:49 #299 №2000223 
>>2000220
Нет

type ХуйняТип = {
[хуйняИндекс: string]: ХуйняТип
}
Аноним 18/04/21 Вск 14:39:40 #300 №2000229 
>>2000220 - >>2000198
Нет, разобрался:
type MyType = Record<string, Record<string, string[]>>;

Спасибо, котик :3

Однако как дока тайпскрипта подросла.
Аноним 18/04/21 Вск 14:41:48 #301 №2000232 
>>2000157
ну и нахуя собственно говнокодить свой велосипед?

https://pastebin.com/1pMAUu9t
Аноним 18/04/21 Вск 14:42:12 #302 №2000233 
>>2000232
>>2000189
промахнулся
Аноним 18/04/21 Вск 14:50:29 #303 №2000242 
>>2000233
Чел, ты конечно умный дохуя, саглы, но
>без либ
>всё на тайпскрипте
Аноним 18/04/21 Вск 14:51:28 #304 №2000244 
>>2000242
перепиши на ванилу, я пример накидал че ты хочешь и как это получить


Аноним 18/04/21 Вск 14:58:16 #305 №2000255 
>>2000232
>class implements
>static static static
>ts-ignore
Заебись
Аноним 18/04/21 Вск 14:59:16 #306 №2000258 
>>2000232
> LEAP_YEAR_DAYS_COUNT = 364
Лол
Аноним 18/04/21 Вск 14:59:36 #307 №2000261 
image.png
>>2000232
У всех тс-макак в високосном году дней меньшем, чем в обычном?
Аноним 18/04/21 Вск 15:05:44 #308 №2000280 
>>2000255
в чем проблема со статическими методами?
>ts-ignore
этого не будет если закончить реализацию
> class implements
а тут ты чего порвался?
Аноним 18/04/21 Вск 15:19:45 #309 №2000300 
image.png
image.png
>>2000232
>бля пишешь ТЗ описываешь интерфейсы и желательно тесты объясняешь разрабу чего от него хочешь
>ждешь
>ждешь
>??
>profit
Мда, вот и дождались
И запомните дети, никогда не пишите календари сами
Аноним 18/04/21 Вск 15:24:45 #310 №2000306 
Capture2.JPG
>>2000300
>2 пик
Ебать зачем так сложно ЭТО ЖЕ ПИЗДЕЦ
Аноним 18/04/21 Вск 15:33:56 #311 №2000314 
image.png
>>2000306
Потому что кручение и верчение этой вашей плонети немношк не совпадает )))
Аноним 18/04/21 Вск 15:35:29 #312 №2000317 
>>2000300
https://pastebin.com/wqhf9DJr

ну за 20 мин на коленке набросал, чего ты ожидаешь
так то я это и сказал
> ну и нахуя собственно говнокодить свой велосипед?

>>2000068
далее реализовываешь new Proxy к результирующему объекту
далее пилишь класс i18n + наследуешься от Calendar и в getYear уже возвращаешь html верстку

Аноним 18/04/21 Вск 15:37:13 #313 №2000318 
>>2000317
> наследуешься от Calendar
всм декоратор пилишь
Вкатышь Золотце 18/04/21 Вск 15:50:27 #314 №2000338 
изображение.png
изображение.png
изображение.png
Ребят, я правильно понимаю, что на рынке есть недобор специалистов, а вкатышей перебор и они никому не нужны?

Это же затратно, наверное, среди вот таких вкатышей пик1-3 нормальных искать сам я золотце.

И как вообще дела обстоят с стажировками, они нужны или сразу до джуна пытаться лямку тянуть? И на стажировку попасть еще сложнее чем на джуна?
Вкатышь Золотце 18/04/21 Вск 15:51:40 #315 №2000340 
>>2000338
Дополню вопросом. Софт скилы играют решающую роль?
Аноним 18/04/21 Вск 15:58:20 #316 №2000354 
>>1998132
А как нормальный тултип сделать (вылезающая всплывающая подсказка над элементом, у которого сработал ховер, с динамическим контентом внутри, разная для разных элементов)? Гуглятся тухлые ответы на stackoverflow и нерабочие варианты на кодпен.
>>1995662
Бамп, к слову.
Аноним 18/04/21 Вск 15:58:33 #317 №2000356 
image.png
>>2000317
Ну нет, просто нет

Особенно интересно как ты в декораторе собрался возвращаемый тип менять
Аноним 18/04/21 Вск 16:24:32 #318 №2000384 
>>2000338
Блять как я же орирую с дебичей которые даже не могут запилить себе резюме на хх или хабр карьере, а хуячат на авито. Я гарантирую что тот пчел в спортивках не вкатится тупо из-за своей фоточки.

>>2000340
Не решающую, но очень важную. Как сказал мне один лид который нанимал людей, лучше взять компанейского приятного середнячка и его прокачать до нормального уровня, чем взять сильного по скилам токсика, который распугает всю команду.
Аноним 18/04/21 Вск 16:27:14 #319 №2000388 
image.png
Почему в жс-фреймворках такой фетиш на декораторы? Что на фронте что на бэке
Вот пример из Nest.js - создаем Controller путем декорирования класса, но почему не путем наследования? Это ж более логично
Аноним 18/04/21 Вск 16:27:49 #320 №2000391 
>>2000356
convertDayIndexToDayOfWeek < -- тут косякнул, Date.getDay() вернувший 0 это вск а не пн на любых тестах было бы заметно

> Особенно интересно как ты в декораторе собрался возвращаемый тип менять

тут ты прав, надо адаптер делать
Аноним 18/04/21 Вск 16:30:29 #321 №2000399 
так, всем спасибо хотя вы отвечали не мне лол. варик с ТС попозже гляну. ебал я эту хуйню своими руками писать пиздец. хорошо что только для тестового такое надо.
>>2000068 - кун
Аноним 18/04/21 Вск 16:41:15 #322 №2000408 
>>2000388
а как сделать DI на наследовании?
Аноним 18/04/21 Вск 16:43:42 #323 №2000415 
>>2000408
Взял и без задней мысли сделал
Аноним 18/04/21 Вск 16:49:08 #324 №2000421 
image.png
AsyncErrorHandler
Че эт за хуйня и как она работает? Асинхронный обработчик ошибок.
Это catch там что-то ловит?
Что-то какая-то мутная мудреная хрень
Аноним 18/04/21 Вск 16:52:07 #325 №2000426 
>>2000421
Принимает асинхронную функцию fn (которая внезапно возвращает промис), этот промис хуячится на catch
Аноним 18/04/21 Вск 16:57:02 #326 №2000429 
image.png
>>2000408
DI это ладно, но зачем оборачивать декоратором объект Request в контроллерах? Можно же просто передават ьв коллбек 1й параметр - Request, это весьма очевидный контракт, нахрена какие-то декораторы мутить?
Аноним 18/04/21 Вск 16:58:55 #327 №2000432 
>>2000426
А зачем эта вложенность функции в функцию? Что возвращает (fn) => (...args) ?
И почему catch берет именно третий аргумент args[2]?
Аноним 18/04/21 Вск 17:17:16 #328 №2000460 
let sorted = {};
let objects = [{key:value},{key:value}];
for (let object of objects) {
sorted[object.key] = object;
}

Как функцианально уменьшить код?
Аноним 18/04/21 Вск 17:24:52 #329 №2000474 
>>2000460
>object.key]
У тебя нет никакого object.key], твой код некорректен, хуй знает, чт ты собрался уменьшать.

>let sorted = {};
Твой soted не sorted ни при каком раскладе, порядок ключей в объекте строго определен.
Аноним 18/04/21 Вск 17:30:43 #330 №2000485 
>>2000474
Окей, бой.

let vocabulary = {};
let organs = [{zalupa: 1},{zalupa: 2}];
for (let organ of organs) {
vocabulary[organ.zalupa] = organ;
}
Аноним 18/04/21 Вск 17:33:00 #331 №2000489 
>>2000485
Когда уже научитесь Map использовать?
Аноним 18/04/21 Вск 17:58:37 #332 №2000521 
>>2000338
30 лет, 2 года вкатываюсь, никто не берет.

Это из-за возраста, а не из-за избытка.
Аноним 18/04/21 Вск 18:01:23 #333 №2000524 
изображение.png
>>2000521
>30 лет, 2 года вкатываюсь, никто не берет.
Аноним 18/04/21 Вск 18:10:45 #334 №2000533 
>>2000521
ПРОСТО ВКАТИСЬ
Я в 27 вкатился на вижуал бэйсик, программировал в экселе. Зато БД подтянул
Потом было уже проще перекатиться в веб. Вот я уже 3 года там, до сих пор нихуя не умею, зато платят нормальные бабки.
И ты так делай
Аноним 18/04/21 Вск 18:11:07 #335 №2000534 
>>2000338
Бля, то читаю стори что "вкатываюсь-вкатываюсь никак не могу вкатиться, все скипают, тогов работать за еду" то "вкатился изи на 70к, через 3месяца апнулся до 120к, еще через 3 получил оффер в дргую компанию и стал получать 200к"
Где тру?
Аноним 18/04/21 Вск 18:12:11 #336 №2000535 
>>2000534
Все правда. Но все зависит от человечка
Аноним 18/04/21 Вск 18:17:40 #337 №2000542 
>>2000534
>"вкатился изи на 70к, через 3месяца апнулся до 120к, еще через 3 получил оффер в дргую компанию и стал получать 200к"
Ха, возможно это был я.
Аноним 18/04/21 Вск 18:38:10 #338 №2000575 
>>2000534
>>2000338

Всё тру. Просто первых сотни, а вкатившихся единицы.

На рынке недостаток специалистов, но СПЕЦИАЛИСТОВ а не вкатунов 30 летних.
Аноним 18/04/21 Вск 19:09:12 #339 №2000627 
>>2000429
Чтобы сказать фреймворку что нужен Request. Не всегда же тебе нужен реквест, иногда тебе нужен просто параметр из path, иногда из query, иногда body, причем смапленный в твои dto, иногда все вместе. Всегда передавать реквест - это значит всегда пердолиться с рассериализацией, а это именно то, что апи фреймворки хотят упростить
Аноним 18/04/21 Вск 19:16:25 #340 №2000644 
В приложухе есть единственная форма. Целесообразно ли выдергивать из формы инпуты и делать из них один компонент Инпут, только ради чистоты кода?
Аноним 18/04/21 Вск 19:50:04 #341 №2000679 
Как можно на практике задрочить ооп и вообще все эти классы в js? Запилил уже несколько сайтов на реакте, но там ооп не используется, классовый синтаксис уже тоже. А потом на собесах начинают дрочить этими зисами, наследованиями, и начинаешь срать в штаны. Просто так сферически учить неинтересно и запоминается плохо. Если я наверну сейчас Ангуляр или начну что-то на three.js пилить, это мне может помочь? Как учили вы? Просто вот пока сайты делал (платно, коммерчески), мне всего один раз понадобилось из объекта удалять поля, и то, я в итоге сделал это иммутабельно через деструктуризацию, и в реакте много того, что в обычном js вообще делается по другому. И собственно вот весь этот дроч каких-то тем без реального применения это для меня вообще пиздец. Поэтому хочу попробовать что-то на реальной практике учить.
Аноним 18/04/21 Вск 19:51:44 #342 №2000682 
>>2000534
Проблема в том, что вот этих "джунов", которые прошли один курс и запилили по гайдам тудушку квадриллионы, из них человек 10 могут вообще внятно объяснить, что за хуйню они делают и зачем
Аноним 18/04/21 Вск 20:01:00 #343 №2000689 
>>2000679
В ангуляре тоже ооп нет, классы там для инжектов в конструктор и чтобы декораторы было куда нацепить.
Там такая же иммутабельность по тем же причинам и FRP.

This на собесах, мне кажется, спрашивают только в контексте самого языка, типа если ты его проебешь, то ты знаешь как так получилось и как с эти бороться.

Наследование - ну выучи prototype, __proto__, instanceof
Аноним 18/04/21 Вск 20:16:15 #344 №2000693 
>>2000689
Да поверхностно я конечно понимаю что это и как работает. Хочется именно нормально с этим поработать, чтобы это всё на практике закрепилось и чтобы я знал где и когда всё это можно применить
Аноним 18/04/21 Вск 20:55:58 #345 №2000718 
>>2000679
Кантора прочитай, залупа ты ебаная и ydkjs. Не нравится учить базу иди нахуй, значит не твое. Я сам прошел этот путь, знаю о чем говорю.
Аноним 18/04/21 Вск 21:21:50 #346 №2000745 
>>2000485
import R from "ramda";

const vocabulary = R.mergeAll(organs);

Аноним 18/04/21 Вск 21:26:14 #347 №2000746 
>>2000679
>и в реакте много того, что в обычном js вообще делается по другом
Реакт и есть обычный JS на 95%. Просто в нем используется более функциональный подход, как и везде сейчас.

This'ы в 2021 смешно писать.

Если так хочется разобраться, то читай learn . javascript .ru и пиши пет проекты без фреймворка.
Аноним 18/04/21 Вск 21:49:49 #348 №2000758 
image
>>2000534
На 100к вкатываются люди которые умеют решать задачи для бизнеса, искать информацию , уметь применять ее и т.д. На зп ниже 50к - идут либо инцелы студенты после вузика, либо инцелы по жизни которые так и не поняли че от них требуется,- "ну назоводе говорили гайки крутить, я и крутил".
Т.е. инцелы мыслят так - денег хочу много, а че от меня требуется не ебу. Вот вам моя всратая верстка, и знания по джсу который я учил раз в неделю. Таких успешно посылают на хауй на этапе скрининга.
Адекватные люди мыслят так - так ебать, че там на мидла джуна требуется за 100к, ага вот курсы на торентах 20 штук с серьезной логикой(клон спотифая, клон ютуба, клон фейсбука не рофл главное базовую логику повторить у себя, не обязательно весь функционал переписывать, написать и уметь объяснить че ты написал), вот собесы на ютубе, вот вакансии, вот статьи на виси от синьеров из санфрана, везде все расписано, все расказано, учим, дрочим, запоминаем, успешно применяем, аплаимся на 100к.


Сам вкатился в этом году на 100к, первый моя работа программистом. 2й собес по счету, аплаили на 80к, я выжал на 100.На вакансии не распылялся, в ИП Педриченко Иван Иванович резюме не отправлял, только в Корпорации уровня Тиньков, Вконтаке, Мейлсру и т.д. те что в топе по финансам и инраструктуре, потому что не хотел работать на дно галере или в мелкостудии.
Историю своего вката подробно напишу сюда в мае либо июне, когда будет свободное время, там длинная простыня, надо будет ее редактировать и подумать еще над содержанием, пока вот краткая затравка для неосиляторов.

Вот вам еще пасхалка это сказал черчиль, маск процитировал когда тесла почти стала банкротом -
Если вы осознанли что проходите через ад, не останавливайтесь, продолжайте идти.
Можете применять на себя, когда будете сидеть сутками над своими проектам, изученим информации и т.д.
Совет№2 - не сиди на дваче нигде кроме этого треда. Как правило анонимы здесь - это не успешные люди, и им проще говорить о своих не удачах, много токсичоности и прочей ерунды. Часто то что здесь принимается за проблему, в реальной жизни проблемой не является. Я когда перестал доску скролить, словно голову из унитаза с говном вынул. Чужое мнение влияет на нас, так пусть это будет мнение успешных людей, а не неудачников.
Тут единственная нужная тебе доска, ее можно читать просто что бы оставаться в информационном поле айти, скажем так со со спецификой анонимности можешь попиздеть за движуху и конторы, либо за код. В остальных меди анонимности нет, там специфика общения другая, менее откровенная.
Аноним 18/04/21 Вск 22:13:45 #349 №2000783 
аноны, накидайте советов. есть 5 инпутов и 1 текстареа. при попытке засабмитить форму я пробегаюсь по всем элементам через for of и проверяю чтобы они тупо не были пустыми. если все ок и нигде не фейлится то форма валидна то надо вытащить данные с инпутом и отправить их в другую функцию там распарсится и в fetch перекинется. так вот как лучше по человечески это сделать ? не охото по каждому инпуту пробегаться, но нужно получить объект в виде ключ-значение.
inb4: formData
Аноним 18/04/21 Вск 22:22:03 #350 №2000795 
>>2000783
formData
Аноним 18/04/21 Вск 22:32:06 #351 №2000800 
>>2000783
Валидация инпутов делается проще

if (Input1.trim() && Input2.trim() && Input3.trim() ){
handleSubmit()
}

инпуты собирай обработчиком onchange в переменные и отправляй дальльше

Аноним 18/04/21 Вск 22:33:14 #352 №2000801 
>>2000758
Много вёрстки требуют вкатуну? Вообще часто приходится верстать?>
Аноним 18/04/21 Вск 22:41:00 #353 №2000810 
const car = {
carModel: "toyota",
carAge: 15,
color: "white",
carHorn() {
console.log("Beep beep!");
},
};

console.log(car.carHorn());

Почему в консоли после 'Beep beep!' появляется undefined?

Аноним 18/04/21 Вск 22:44:17 #354 №2000814 
image.png
>>2000810
Потому что
Аноним 18/04/21 Вск 22:49:19 #355 №2000819 
>>2000814
Так всегда происходит?
Аноним 18/04/21 Вск 22:59:43 #356 №2000830 
Какой сейчас положняк по ORM для ноды? Использовать полноценную ORM, query builder, или писать чистый SQL?
Аноним 18/04/21 Вск 23:03:13 #357 №2000831 
>>2000801
Практически не спрашивают если это именно фронт. Могут как стилизовали код на прошлых проектах? modules или styled components? Подразумевается что вкатыш умеет верстать.
Аноним 18/04/21 Вск 23:04:21 #358 №2000832 
>>2000819
функция должна что-то возвращать,
в объявлении метода carHorn() после логирования напиши return 'anus' и посмотри что будет
Аноним 18/04/21 Вск 23:04:37 #359 №2000833 
>>2000810
первый консол лог вывод строку, второму ты говоришь покажи мне литерально web api - он закономерно посылает тебя нахуй, т.к. в js их нет

Аноним 18/04/21 Вск 23:05:19 #360 №2000834 
>>2000718
>>2000746
Ладно, в пизду, о чем я вообще блядь на дваче спрашиваю, сам ведь лучше знаю что мне сделать, прокрастинацией здесь занимаюсь
Аноним 18/04/21 Вск 23:19:02 #361 №2000842 
>>2000832
Попробовал сам, понял что обосрался. Действительно, почему консоль возвращает андефайнд?
Аноним 18/04/21 Вск 23:21:14 #362 №2000845 
Screenshot from 2021-04-18 23-20-55.png
>>2000842
Загуглил
Аноним 18/04/21 Вск 23:23:36 #363 №2000847 
>>2000842
>>2000845
Короче ситуация такая. Консолька в девтулзе всегда выводит результат выражения даже если мы ее не просим. При вызову console.log ничего не возвращается и она выводит undefined.
Аноним 18/04/21 Вск 23:26:38 #364 №2000852 
image.png
>>2000842
>>2000847
Потому что функция возвращает undefined если явно return не указан
Вот консолька в питоне. undefined тут нет есть только None, но все то же самое
Аноним 18/04/21 Вск 23:27:26 #365 №2000856 
>>2000852
Зумерки совсем обленились
Аноним 18/04/21 Вск 23:31:45 #366 №2000860 
>>2000830
Если easy peasy запросы будут то орм, если нет то query builder
Аноним 18/04/21 Вск 23:46:32 #367 №2000864 
>>2000432
декоратор ёпта
ее вкурил што ли ёпта?
функцию он принимает значит
и функцию возвращает
декорированную нах
понимаешь?
эта функция че-то там с args делает нах
че-то блять вытаскивает выдрачивает
2й индекс трогает ёпта
то есть 3й элемент рот его ебать
почему так?
а я ебу
контракт у него такой нах
на ус мотай
папку слушай
и збс будет
Аноним 19/04/21 Пнд 01:47:06 #368 №2000896 
>>2000679
на ноде попиши дебс
Аноним 19/04/21 Пнд 05:08:26 #369 №2000938 
>>2000842
Потому что ты не умеешь программировать.
Аноним 19/04/21 Пнд 10:09:55 #370 №2001013 
Стикер
Кто-нибудь из здесь присутствующих занимался написанием собственных декораторов для классов? В каких-ситуациях для вас это была полезная практика?
Аноним 19/04/21 Пнд 12:40:32 #371 №2001202 
Screenshot5.png
Левиафан Я ничего не понимаю.mp4
Почему не передаётся ошибка из catch во внешние обработчики.
Функция асинхронная, но throw должен же передать ошибку во внешний обработчик ошибок?

Вместо этого выбрасывается UnhandledPromiseRejectionWarning
Аноним 19/04/21 Пнд 13:47:11 #372 №2001287 
>>2001202
Хоть ты и написал async to2ch, вернуть полезный промис ты забыл
За что ты пытаешься научить puppeteer двачевать?
Аноним 19/04/21 Пнд 13:53:17 #373 №2001295 
>>2001287
>За что ты пытаешься научить puppeteer двачевать?
С двачем это я для примера написал, просто основной код большой.

>вернуть полезный промис ты забыл
А что если мне не нужно этот промис возвращать. Мне никак это ошибку не отловить вне функции?
Аноним 19/04/21 Пнд 13:56:01 #374 №2001299 
Стикер
>>2001295
Привет. Я левый пчел. Почему ты не обернешь в try catch промис page.goto ? И ещё. Напиши не throw, а throw new Error(e)
Аноним 19/04/21 Пнд 13:56:41 #375 №2001301 
>>2001295
На браузере хз, в ноде https://stackoverflow.com/a/28709667
Аноним 19/04/21 Пнд 14:11:02 #376 №2001322 
Пацаны в чем разница запросов разных? Я вот использую фетч, хватает для всего. Есть еще какой то ajax, когда его надо использовать? Какие еще запросы есть? Можно ли везде фетчем пользоваться в замен остальных?
Аноним 19/04/21 Пнд 14:13:45 #377 №2001329 
>>2001322
fetch юзаешь если член больше 19 см
ajax если меньше
Аноним 19/04/21 Пнд 14:17:48 #378 №2001336 
Стикер
>>2001322
Все запросы - это промисы. Каждый вид запроса обладает своим удобным сахаром. Запрос строится на xmlhttprequest. Твой фетч - это обертка над xmlhttprequest. Ajax это вообще технология обращения к серверу без релоада страницы. Но то, про что ты говоришь ты скорее всего имеешь ввиду ajax в jquery.

Сейчас популярен axios. Удобный иструмент, много работы удобной за тебя из под коробки делает.
Аноним 19/04/21 Пнд 14:21:54 #379 №2001343 
>>2001299
>Почему ты не обернешь в try catch промис page.goto ?
try/catch ловит только синхронные и async/await операции.

> И ещё. Напиши не throw, а throw new Error(e)
Ну там объект ошибки возвращается. Есть смысл ещё один объект создавать?

>>2001301
Спасибо. Выглядит весьма костыльно. Отлавливать ошибки через события это вообще законно?
Аноним 19/04/21 Пнд 14:29:37 #380 №2001351 
customfetch.png
>>2001322
>хватает для всего
А так сможет?
Аноним 19/04/21 Пнд 14:42:52 #381 №2001358 
>>2001336Спасибо добрый анон, желаю тебе хорошего доя!
Аноним 19/04/21 Пнд 14:47:22 #382 №2001362 
>>2001343
>костыльно
Какие требования такие и решения
Это даже и не catch, обработать ошибку ты не сможешь, только пологгировать
Аноним 19/04/21 Пнд 16:05:43 #383 №2001486 
232525049-15473281901540 (1).png
>>2001362
>Какие требования такие и решения
Не думал, что это что-то необычное - отловить асинхронную ошибку.
Типа единственные правильный вариант это вовзращать промис в функции? А если промисов несколько, то все чтоль возвращать?
Аноним 19/04/21 Пнд 16:35:25 #384 №2001552 
>>2001486
Но ты же ее из пизды хочешь отловить. Да, возвращать. Собрать все в один и возвращать
Аноним 19/04/21 Пнд 17:35:47 #385 №2001654 
помогите, нужна 3д симуляция батута
что-то в стиле шарик падает на батут
вот так только проще
https://www.youtube.com/watch?v=uM7o_g7JS4g
Аноним 19/04/21 Пнд 17:51:41 #386 №2001671 
>>2001654
Maya или blender юзай
Аноним 19/04/21 Пнд 18:13:22 #387 №2001681 
>>2001671
просят прям javascript
Аноним 19/04/21 Пнд 20:27:22 #388 №2001774 
Так блят. Прочитал я доку по рякту, заделал свою тудушку и ещё один проект. Но чего я не понял так это как делать бляцкие SPA. Ну в смысле идея у меня есть, но она 100% сложна и не верная. Что я упустил?
Аноним 19/04/21 Пнд 20:46:00 #389 №2001789 
Есть некий get-запрос с query-параметрами, при переходе по нему у клиента открывается новое окно и происходят всякие шняги

Проблема в том что т.к. query-параметры передаются в явном виде то человек может просто подменить один из них и поменять поведение в угоду себе, такого быть не должно

Очевидное решение - делать POST-запрос вместо GET, однако ж это лишь усложнит хитрожопым жизнь, но проблему не решит. По-прежнему детали запроса можно легко подменить. Как такое решать?
Аноним 19/04/21 Пнд 21:19:07 #390 №2001812 
>>2001789
валидация на сервере?
Аноним 19/04/21 Пнд 21:21:57 #391 №2001813 
>>2001789
> детали запроса можно легко подменить. Как такое решать?
Neekaque

Любой запрос всегда можно сделать с помощью curl
Аноним 19/04/21 Пнд 21:26:08 #392 №2001815 
>>2001774
spa - это просто js файл, который отрисовывает тебе UI и делает запросы по api по мере необходимости.
Аноним 20/04/21 Втр 02:54:58 #393 №2001940 
>>2001774
https://www.youtube.com/watch?v=uE1RG3vQP_g
охуеть ТЗ у тебя, говна попей плз
Аноним 20/04/21 Втр 12:19:45 #394 №2002200 
c839f9b11bead9922a062a37161804f3.jpg
Аноны меня возьмут в ЕлектроникСпротс с таким?
Буду им физ. движки писать С КОЛЛИЗИЕЙ хуевой!!
https://codepen.io/EXDude/pen/wvgYzMx
Аноним 20/04/21 Втр 12:22:35 #395 №2002201 
c839f9b11bead9922a062a37161804f3.jpg
>>2001681
threejs
Аноним 20/04/21 Втр 12:36:30 #396 №2002219 
Antd
Аноним 20/04/21 Втр 13:10:41 #397 №2002260 
let data = []
for (let i = 0; i <= 8; i++)
fetch(`${i}.json`).then(res => res.json()).then(text => data = [...data, ...text.response['items']])

хули массив в консоли видно, а в браузере пустой?
Аноним 20/04/21 Втр 13:11:44 #398 №2002264 
>>2002260
Там ~800 спаршенных постов из вк, если что.
Аноним 20/04/21 Втр 13:14:21 #399 №2002268 
>>2002260
>хули массив в консоли видно, а в браузере пустой?
А тебя ебет?
Аноним 20/04/21 Втр 13:28:23 #400 №2002310 
ТСач, поясни, с какого хуя стало возможным присваивать функцию с unknown аргументом в переменную, ожидающую функцию с аргументом конкретного типа? Официальную доку читал, там этот момент как-то стороной обошли.

let a = (v: number) => 0
let b = (v: unknown) => 0

a = b;

...и никакой ошибки. Пиздец.

Аноним 20/04/21 Втр 13:29:22 #401 №2002316 
>>2002260
Потому-что анонмную лямбду с циклом браузер не поймет, так что пиши console.log(tyDown)
Аноним 20/04/21 Втр 13:30:26 #402 №2002319 
>>2002260
[1, 2, 3, 4, 5].forEach(x => x)
//undefinded
[1, 2, 3, 4, 5].forEach(x => console.log(x))
//1 2 3 4 5
Аноним 20/04/21 Втр 14:39:26 #403 №2002399 
>>1997999
чем стрелочные функции удобные то такие? по-моему обджекшены даже читаются лучше
Аноним 20/04/21 Втр 14:47:57 #404 №2002408 
>>2002319
А как в браузер распечатать?
Аноним 20/04/21 Втр 14:49:44 #405 №2002411 
>>2002408
>[1, 2, 3, 4, 5].forEach(x => console.log(x))
Аноним 20/04/21 Втр 14:57:26 #406 №2002420 
>>1993705 (OP)
1. Как в реакте сбросить инпут файла? Чтобы имя отправленного файла обнулялось? Чет ничего не смог нагуглить. Пока все что придумал - закрывать форму и открывать опять.
2. Кто-нибудь работал с апи от дак дак го? Интересует их поиск. Знаю, что гугл позволяет такое делать, но за бабки.
У них есть вот такая хуйня:
>An API for some of our Instant Answers, not for full search results.
То есть это значит, что они не дают доступа к поиску как гугл? Понятно что все еще можно просто посылать результат ввода из формы на дакдакго.ком, но хочется в пете выебнуться и посылать полноценные запросы по апи.
Аноним 20/04/21 Втр 15:33:26 #407 №2002477 
>>2002310
CONTRAVARIANCE
Аноним 20/04/21 Втр 15:36:53 #408 №2002483 
фронтенд говно
жс параша
я горю
твоя мамаша
шлюха
Аноним 20/04/21 Втр 15:45:27 #409 №2002501 
>>2002411
в штмл
Аноним 20/04/21 Втр 16:29:50 #410 №2002552 
>>2002483
гуф залогинься
Аноним 20/04/21 Втр 16:58:01 #411 №2002570 
>>2002310
>a = b;
>сам стреляет себе в ногу
>нет ошибки
Действительно.
Аноним 20/04/21 Втр 17:14:14 #412 №2002584 
Шалом анон.
Есть один флекс контейнер фиксированного размера - строка
В нем два дива фиксированного размера - столбцы
Задача: сделать так, чтобы при приближении, если столбец не влезает в экран, он переносился вниз. То есть это происходит динамически.
Свойство flex-wrap: wrap не работает так как надо.
Аноним 20/04/21 Втр 17:18:24 #413 №2002589 
>>2002584
При зуме штоле?
Аноним 20/04/21 Втр 17:24:47 #414 №2002598 
>>2002570
> сам стреляет себе в ногу
Билять, это же просто пример. Этот код не использую, просто для наглядности механизма показал.
Аноним 20/04/21 Втр 17:30:40 #415 №2002603 
>>2002477
Причем здесь контравариантность?
Допустим,

let v: number = 0;
let u: unknown = 's'

v = u;

Здесь будет ошибка "Type 'unknown' is not assignable to type 'number'" и это вполне ожидаемо (а вот u = v как раз валидно и есть та самая контраваринтность).
Аноним 20/04/21 Втр 17:32:07 #416 №2002604 
>>2002589
Да
Аноним 20/04/21 Втр 17:37:42 #417 №2002610 
>>2002477
А, всё, понял, там бивариантность работает. Спасибо!
Аноним 20/04/21 Втр 18:20:56 #418 №2002643 
>>2001202
Зачем ты используешь одновременно и .catch(e) на промисе, и try {await ... } catch (error) {}?

'ошибка3', как я понял, вообще никогда не выведется, ведь ошибка уже поймана внутри (и выведено 'ошибка2').
Аноним 20/04/21 Втр 18:59:12 #419 №2002693 
>>2002584
Зум страницы опредялется в мета теге вью порт и задается фиксировано один раз при загрузке страницы н грузит под нее стили. Получается тут никак их не поменять гибко.

Смотри в сторону window и его методов, там найдешь зум и ему применишь стили.
Аноним 20/04/21 Втр 19:05:07 #420 №2002696 
>>2002584
У тебя контейнер фиксированного размера и кажется тут то ты и соснул, потому что все всегда будет влезать
Аноним 20/04/21 Втр 19:49:03 #421 №2002746 
Я знаю, что тут сидят опытные архитекторы и бекенд инженеры.
А по сему вопрос:
Слышал, что хранить бизнес логику в контроллере плохая практика.
Хорошая ли практика хранить бизнес логику в мидлварах?
или нужен дополнительный слой абстракций , к которому бы обращались эти мидлвары?
Аноним 20/04/21 Втр 20:12:41 #422 №2002777 
>>2002746
> Хорошая ли практика хранить бизнес логику в мидлварах?
пиздецки плохая

старайся делать так, чтобы твоя бизнес логика не знала вообще ничего о фреймворках/тулзах которые ты используешь

в идеале если вы решите переехать с express на фастифай/nestjs/deno

вы перетаскиваете классы с бизнес логикой и они без проблем заводятся в отрыве от всего
Аноним 20/04/21 Втр 20:27:25 #423 №2002796 
Обьясните пожалуйста это "[y]" в выводе. Я совсем не понял как это работает, а в гугле не получилось найти. Какая логика у этого?

const listOfNeighbours = [
["canada", "mexico"],
["spain"],
["norway", "sweden", "russia"],
];

for (let i = 0; i < listOfNeighbours.length; i++) {
for (let y = 0; y < listOfNeighbours.length; y++) {
console.log(`Neighbour: ${listOfNeighbours[y]}`);
}
}
Аноним 20/04/21 Втр 20:28:33 #424 №2002797 
>>2002796
блять, там в конце перед [y] ещё стоит [и]. ебаная разметка
Аноним 20/04/21 Втр 20:30:40 #425 №2002803 
Какие же уёбищные в ангуляре формы всё-таки. Всё хорошо, пока тебе не понадобится маааленькая фича, которая за гранью фантазии разработчиков фреймворка: тут то ты понимаешь, что всё здесь намертво прибито гвоздями. Приходится расковыривать все кишки этих ёбаных форм, чтобы добавить тот или этот функционал, я заебался уже портянку писать. Зато в примерах всё красивенько.
Аноним 20/04/21 Втр 20:33:39 #426 №2002810 
>>2002796
добавь после россии украину и твой код перестанет работать лол
Аноним 20/04/21 Втр 20:55:11 #427 №2002831 
>>2002803
>маааленькая фича
Какая например? Мне для сравнения интересно.
Аноним 20/04/21 Втр 21:12:17 #428 №2002848 
>>2002831
Окей. Понадобилось поле ввода только положительных целых чисел.
1) стандартный input type=number просто смешон, забудем про него.
2) ммм, pattern? Нет, он всего лишь делает поле невалидным. Нам надо тупому юзеру наглядно показать, что нельзя вводить ничего кроме цифр, а не просто плашечку "неверное поле, имши!".
3) окей, что у нас дальше? Регулярочки всегда выручали нас. Можно разбить ящик с бананами [(ngModel)]. Но (ngModelChange) не обновляет видимый результат после преобразования регекспом, ведь всё невалидное превратится в 0 или пустую строку, а ебучая форма у мамы умная и не желает обновить поле, ведь типа "изменений нет!". Зафорсить её на это изменение тоже нельзя, ведь она лучше знает как правильнее.
4) Штош...гуманных способов больше нет, вызываем control.setValue(filteredValue); и ещё до кучи
control.updateValueAndValidity(); чтобы ебальник ей закрыть о боже! О невалидности блять, да мы только что сделали сетвэлью, почему нахуй?!!!!
Аноним 20/04/21 Втр 21:17:32 #429 №2002851 
>>2002831
Вот ещё прикол: нельзя просто взять и присвоить полям формы свойства модели.
>Type 'string' is not assignable to type 'number'.
Ах ну да, у нас же для поля типа текст тип стринг, сделай нумбер и не будет ошибки. Да идите нахуй с этим говном.
Аноним 20/04/21 Втр 21:19:08 #430 №2002852 
>>2002796
for (let y = 0; y < listOfNeighbours.length; y++) {
console.log(`Neighbour: ${listOfNeighbours[y]}`);

Вот так наверное хотел написать. Первая итерация идет по основному массиву, когда он в него заходит то итерирует каждый его под массив, каждый подмассив итерирует на его элементы, в зависимости от длинны под массива.
Аноним 20/04/21 Втр 21:20:00 #431 №2002856 
>>2002852
лол, двач код съел, ну да ладно
Аноним 20/04/21 Втр 21:21:34 #432 №2002859 
>>2002831
Если хранишь дату в модели в нечеловеческом формате и выводишь в ридонли поле через date пайп, то при ресете формы там остается невидимое значение, и теперь из кода через модель нельзя его поменять. Да, такие сценарии бывают, не пизди.
Аноним 20/04/21 Втр 21:33:54 #433 №2002867 
>>2002848
Ангуляр это не собрание твои любимых контролов, ты бы еще спросил почему select только нативный и где автокомплит.
Формы - это про интеграцию модели (NgControl) и твоих нативных контролов (input, yobaInput и т.д.)
Поэтому пишешь свой контрол как хочешь, а потом пишешь CVA на него.
Аноним 20/04/21 Втр 21:44:49 #434 №2002874 
>>2002867
Всё равно бомбит.
Аноним 20/04/21 Втр 21:48:33 #435 №2002877 
>>2002848
>1) стандартный input type=number просто смешон, забудем про него.
Чем это тебя не устраивает лол? Как раз можешь в ней пропердолить целочисленные положительные значения, а от всяких хитрожопых валидацию при сабмите скриптом проводить.
>2) ммм, pattern? Нет, он всего лишь делает поле невалидным. Нам надо тупому юзеру наглядно показать, что нельзя вводить ничего кроме цифр, а не просто плашечку "неверное поле, имши!".
Бля, добавь тогда параграф, или какой-нибудь смолл под полем, который говорит, что можно только целочисленные положительные значения в поле вводить. Уж пользователь наверно догадается, что невалидное поле над/под этим текстом означает. Можешь заодно ещё и в `title` запихнуть. На крайняк вкуривай Constraint validation API, который позволяет кастомизировать дефолтный попап, но там придётся чуть ли не свой модуль писать для этого дела.
Аноним 20/04/21 Втр 21:49:23 #436 №2002880 
>>2002852
Да, спасибо, я уже понял. Вообще охуел когда увидел что так надо. Уж хотя бы было бы как-нибудь типа [i[y]], имхо
Аноним 20/04/21 Втр 21:53:11 #437 №2002884 
>>2002880
Так, ладно, я хуйню сказал какую-то. Я только сейчас перечитал и понял что i с [y] вообще никак не связаны с массивами.
Аноним 20/04/21 Втр 21:57:04 #438 №2002889 
>>2002877
>Нам надо...
Ну ты понел.., не мне. Такая задача была. Мне то похуй какая баба всрака будет долбиться в неправильный паттерн.

А что касается input type=number, ему добавили возможность настройки, которая не работает. Спрашивается, нахуя? Зачем даешь право написать max min и step, если это распространяется только на стрелочки? Почему если эти параметры указаны, программно не ограничивать ввод? Чтобы я костыль очередной писал на жээсе?
Аноним 20/04/21 Втр 22:02:11 #439 №2002896 
>>2002889
Валидация это не про ограничение ввода
>Чтобы я костыль очередной писал на жээсе?
Да. Другим нужны другие костыли, всем не угодишь
Аноним 20/04/21 Втр 22:04:51 #440 №2002899 
>>2002889
Ну и да, почему было не взять маску? которых целых 3, но одна говно, а вторая не поддерживается
Иснтрумент под задачу и все такое
Аноним 20/04/21 Втр 22:05:29 #441 №2002900 
>>2002889
> Чтобы я костыль очередной писал на жээсе?
Потому, что это антипаттерн. Ограничивать пользовательский ввод изначально дело неблагодарное, следовательно, идя этим путем ты заслуженно получаешь свою порцию боли. Правильный путь - валидировать пользовательский инпут по блюру/потере фокуса.
Аноним 20/04/21 Втр 22:10:20 #442 №2002907 
Посоны, запрос к Api выдает инфу на нескольких страницах каждая с таким ключом - &page=1
вторая страница с контентов $page=2 b и т.д

Я запиливаю пагинацию у себя, и значит вопрос, как сделать так что бы если апи дал контент на несколько страниц, то кнопки для некст страниц отображались, а если не дал, то и не отображаются?
Я понимаю что можно сделать проверку в useState мол если контент загрузился, покажи кнопку на некст страницу и подключи его с этим содержимым. Просто не догоняю, на каждую страницу делать отдельный запрос? Страниц с контентом может быть как 1 так и 10.
Аноним 20/04/21 Втр 22:12:39 #443 №2002912 
>>2002899
Почему было не взять либу типа материала просто? Я ебу? Нет. Мне спустили задачу, я поебался, правильный это путь или нет - не мое дело в данном случае. И хоть я задачу выполнил, формы огорчили тем что чуть отступишь от дефолта и тебе пизда.
Аноним 20/04/21 Втр 22:23:20 #444 №2002922 
>>2002907
Обычно серверная пагинация возвращает общее количество страниц вместе с нынешней страницей.
Аноним 20/04/21 Втр 22:26:07 #445 №2002926 
>>2002912
>правильный это путь или нет - не мое дело в данном случае
Ну понятно. А потом говорят "%фреймворк нейм% не оче". Вот теперь и у меня загорелось
Аноним 20/04/21 Втр 22:34:44 #446 №2002933 
>>2002926
Ну каждому - своё. Мне не хватает свободы.
Аноним 20/04/21 Втр 22:44:30 #447 №2002942 
>>2002922
Да все разобрался, там общего колличества страниц нет, но есть
totalResults: "113";

ток не понял как теперь это вывести. если есть, если мне надо по 10 итем на страницу надо как-то map сделать на общее колличество и поделить на 10, а че мапить то если 113 это число.
Аноним 20/04/21 Втр 22:48:47 #448 №2002944 
>>2002942
Нужно применить математику.
У нас было 113 яблок, одна корзина вмещает 10 яблок а мамаша ОПа вмещает ..., сколько корзин понадобится славику чтобы упаковать все яблоки?
Аноним 20/04/21 Втр 22:50:22 #449 №2002946 
>>2002944
Я вообще это и написал, я говорю не понял как отоброзить нужное число страниц потом. Как функция должна выглядеть
Аноним 20/04/21 Втр 22:55:18 #450 №2002949 
>>2002946
Никак, придётся тебе только первые 10 результатов показывать.
Аноним 20/04/21 Втр 22:56:55 #451 №2002952 
>>2002949
Бля не знаешь как помочь, лучше помолчи.

обычный перебор i; i<total; i++
return <div>{page}</div>

подойдет
Аноним 20/04/21 Втр 23:03:49 #452 №2002958 
faang вакансии
Аноним 20/04/21 Втр 23:09:17 #453 №2002960 
>>2002952
А если будет 1000 страниц, будешь всю тысячу рисовать?
Аноним 20/04/21 Втр 23:15:24 #454 №2002965 
>>2002960

Загрузить ещё
или нумерация страниц
Аноним 20/04/21 Втр 23:23:22 #455 №2002972 
>>2002965
А может лучше СКРОЛЛ БЕСКОНЕЧНОСТИ?
Аноним 20/04/21 Втр 23:30:05 #456 №2002977 
>>2002972
можно, но говорят что бед практикс его юзать
Аноним 20/04/21 Втр 23:39:38 #457 №2002984 
>>2002977
Твиттер, пейсбук и ютубокаменты получается бэд практис?
Аноним 20/04/21 Втр 23:42:37 #458 №2002985 
>>2002984
https://habr.com/ru/post/427615/
Аноним 20/04/21 Втр 23:48:28 #459 №2002990 
>>2002985
Советы какого-то хуя с горы vs. практический опыт многомиллиардных мегакорпораций. Кого же стоит слушать???
Аноним 20/04/21 Втр 23:50:38 #460 №2002993 
>>2002990
прочитай статью хотяб
Аноним 20/04/21 Втр 23:56:43 #461 №2002998 
>>2002993
Так пейсбук это бэд практис или нет?
Аноним 21/04/21 Срд 00:05:36 #462 №2003007 
>>2002998
Там про то, что бесконечный скрол хорош на сайте с лентой типа фейсбука, но плох в других случаях (например выдача поисковика или СУКА ДВАЧ ТРЕД НЕ НАЙДЕН)
Аноним 21/04/21 Срд 00:08:26 #463 №2003012 
>>2002998
А вообще, хуже фейсбука и его высеров нет в интернете.
Аноним 21/04/21 Срд 00:21:38 #464 №2003025 
LogRocket Blog.png
>>2003007
>Там про то, что бесконечный скрол хорош на сайте с лентой типа фейсбука
Конкретно в случае пейсбуко-твиттера данные не сортируются по дате.
Аноним 21/04/21 Срд 00:45:45 #465 №2003040 
image.png
image.png
Какое же говно блядь.
Аноним 21/04/21 Срд 02:22:40 #466 №2003056 
>>2001336
> Твой фетч - это обертка над xmlhttprequest
https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch
>This kind of functionality was previously achieved using XMLHttpRequest. Fetch provides a better alternative that can be easily used by other technologies such as Service Workers. Fetch also provides a single logical place to define other HTTP-related concepts such as CORS and extensions to HTTP.

Это другое, ты не понимаешь.
Аноним 21/04/21 Срд 03:16:35 #467 №2003065 
>>2003040
>не писать на ангуляре в 2021
Вдриську с маньки
Аноним 21/04/21 Срд 05:51:21 #468 №2003096 
>>2002944
Пиздец. Вроде я синтаксис выучил, а задачу эту сделать не могу.
Аноним 21/04/21 Срд 09:48:34 #469 №2003211 
Кто как использует деструктуризацию?
Аноним 21/04/21 Срд 09:56:07 #470 №2003216 
Стикер
>>2003211
А шо там использовать. Деструктурируешь и все.
Аноним 21/04/21 Срд 09:59:48 #471 №2003220 
>>1993705 (OP)
Как правильно вытащить координаты с navigator.geolocation.getCurrrentPosition?
Я делаю так:
function getPosition() {
function onSuccess(position: GeolocationPosition) {
const latitude = position.coords.latitude;
const longitude = position.coords.longitude;
return {latitude, longitude}
}
function onError(err: GeolocationPositionError) {
console.log(err);
}

return navigator.geolocation.getCurrentPosition(onSuccess, onError); // эта хуйня возвращает void поэтому нихуя не работает, компилятор ругается, когда я пытаюсь получить координаты {latitude, longitude} = getPosition();.

}
Аноним 21/04/21 Срд 10:20:52 #472 №2003232 
>>2003220
const getCurrentPosition = () => new Promise(navigator.geolocation.getCurrentPosition)

getCurrentPosition().then(position => {
const { latitude, longitude } = position.coords
})

Можешь так делать. Или через даже так

const {latutude, longitude} = (await getCurrentPosition()).coords

внутри async-функций
Аноним 21/04/21 Срд 10:22:46 #473 №2003236 
>>2003232
Ааааа блять, эта хуйня асинхронная, пиздец я затупок.
Аноним 21/04/21 Срд 10:34:36 #474 №2003247 
>>2003220
getPosition = () => {
return new Promise((resolve, reject) => {
navigator.geolocation.getCurrentPosition(
position: GeolocationPosition => resolve(position),
error => reject(error)
);
}
}

[latitude, longitude] = getPosition()
.then((position: GeolocationPosition) => [position.coords.latitude, position.coords.longitude])
.catch(error => console.log(error));
Аноним 21/04/21 Срд 11:32:35 #475 №2003288 
>>2003247
Почему так нахуй?
const {latitude, longitude} = (await getCoords()).coords // заебись, чотко.
////
const {latitude, longitude} = await getCoords()
.then((position: GeolocationPosition) => {position.coords.latitude, position.coords.longitude})
.catch((error: GeolocationPositionError) => console.log(error)); // Property 'latitude' does not exist on type 'void'. Property 'longitude' does not exist on type 'void'.

Не то чтобы я настаивал на втором варианте, просто интересно. У чего он нашел тип void? Что там void?


Аноним 21/04/21 Срд 11:48:06 #476 №2003296 
>>2003288
Хуй знает, пользуйся первым.
Аноним 21/04/21 Срд 11:55:38 #477 №2003301 
>>2003296
Ок. А почему-тогда он у меня аж целых 4 раза возвращает значение широты, если я пытаюсь вывести его в консоль?
const { latitude, longitude } = (await getCoords()).coords
console.log(latitude);
Он логирует одно и то же 4 раза подряд. Для интереса попытался сделать запрос к серверу, он отправил 4 запроса. Это полная хуйня. Это связано с тем что компонент лишние разы ререндерится (с чего бы это?) или что-то с промисами не так?
Аноним 21/04/21 Срд 12:09:11 #478 №2003311 
Capture.PNG
>>2003301
Хз, у меня вон вообще кал выводит.
Аноним 21/04/21 Срд 12:34:18 #479 №2003341 
>>2002552
Гуф умер.
Аноним 21/04/21 Срд 12:37:28 #480 №2003346 
У меня в Интернет магазине, данные о купленных товарах содержатся в Local Storage, кроме того есть система авторизации на куки (имя пользователя содержится в куки). Я бы хотел связать эти два элемента, чтобы у определённого пользователя был свой набор купленных товаров (сейчас товары не связаны с пользователем). Есть советы как этого достичь?
Аноним 21/04/21 Срд 12:41:02 #481 №2003351 
>>2003346
БД используй, дурачок. Локал сторадж не для базы данных магазинов.
Аноним 21/04/21 Срд 12:56:11 #482 №2003377 
>>1993705 (OP)
Есть длинная форма (ангуляр), как в случае ее неудачной валидации перемещать экран посетителя к ближайшему месту где есть ошибка? А то не сразу ясно, че не так
Аноним 21/04/21 Срд 13:03:56 #483 №2003391 
Как для функционального компонента определить обязательные пропсы?
Аноним 21/04/21 Срд 13:04:25 #484 №2003392 
image.png
>>2003346
Пиздец. И вот это будущее веба
Аноним 21/04/21 Срд 13:10:48 #485 №2003396 
>>2003377
Есть scrollTo(x, y), однако он скроллит так что эти координаты x, y оказываются в левом верхнем углу экрана а не как-то иначе. Надо чтобы в центре оказался элемент, где ошибка
Можно получить координаты элемента, ок, но че дальше-то? Как понять сколько отнять от этих координат чтобы получить правильный scrollTo? Размер экрана у всех разный
Аноним 21/04/21 Срд 13:24:01 #486 №2003405 
>>2003396
get bounding client rect
Аноним 21/04/21 Срд 13:51:30 #487 №2003413 
>>2003391
Интерфейс.
Аноним 21/04/21 Срд 15:15:07 #488 №2003472 
Посоветуйте либу для логирования
Аноним 21/04/21 Срд 15:46:23 #489 №2003497 
Пацаны, а зачем во время выполнения реквестов мы дважды делаем await (дважды резолвим промис)? Достаточно же первого await-а, зачем делать response.json()?

const myReq = new Request();
const response = await myReq.http(url);
const json = await response.json();
Аноним 21/04/21 Срд 15:54:55 #490 №2003511 
>>2003497
Во-первых так функция сделана. Во-вторых на случай, если ответ ЖЫРНЫЙ, штоб процесс случайно не положить.
Аноним 21/04/21 Срд 16:24:38 #491 №2003548 
>>1993705 (OP)
NaN !== NaN в хату, аноны. Такой вопрос, заказчик-пидор, ставит задачу очень расплывчато, потом когда сделано уже много, начинаются песни про "а вот тут вот можно вот так вот, а вот тут изменить, а тут не очень". В итоге приходится переделывать. Собственно, куда читать, где смотреть, по постановке требований к ПО? Может тут есть лиды или ПМ, которые много общаются с мычащими уродами, не знающими чего они хотят? Что помогает вам четко формализовать требования?
Аноним 21/04/21 Срд 16:38:32 #492 №2003571 
>>2003548
Так а сроки то есть? И если есть то меняются ли после новых невнятных мычаний?
Аноним 21/04/21 Срд 16:56:30 #493 №2003590 
>>2003571
Сроки наша контора сама ставит. Как правило часто выходим за сроки на сверках, но заказчик это понимает и не давит особо. Сейчас вот с короной вообще пиздец, пол года только на удаленку настраивались, но пока идем по графику. Но хочется научиться сразу ставить такие вопросы людям, чтоб они озвучивали, что конкретно им надо. Мне просто по человечески заебывает делать двойную работу и возвращаться к тому, что я уже сделал и забыл. Как то так, если что присоветуешь, буду очень благодарен.
Аноним 21/04/21 Срд 17:07:36 #494 №2003603 
>>2003590
Некоторые люди не знают что им надо пока им не покажешь, можете до разработки макетики рисовать@согласовывать, если переделки по внешнему виду, если по интеграциям - доки с описанием и диаграмками взаимодействий, но это все равно не 100% вариант, лел.
Ну а если вам платят за переделки, то тебя это вообще ебать не должно, добро пожаловать
Аноним 21/04/21 Срд 17:13:56 #495 №2003606 
>>2003603
Ох, ебать, понятно, ладно, спасибо. Просто в конторе до этого аналитики в задачах аж прописывали количество символов в полях, а тут пиздос анархия.
Аноним 21/04/21 Срд 17:33:52 #496 №2003632 
>>1993705 (OP)
Что можно использовать в качестве "затычки" для тернарного оператора после двоеточия? Например у меня есть условный оператор, но нет else. Тернарный оператор требует выражение после двоеточия.
Аноним 21/04/21 Срд 17:55:51 #497 №2003650 
>>2003632
void 8
Аноним 21/04/21 Срд 17:57:28 #498 №2003653 
>>2003632
Если тебе не нужен тернарник, не используй тернарник. Напиши просто

if (cond) {
do_x
}
Аноним 21/04/21 Срд 18:02:15 #499 №2003662 
Помогите люди добрые. Впервые юзаю вебпак и devServer.

Работаю с css при помощи плагина MiniCssExtractPlugin

Проблема вот в чем:

В начале js файла стоит import '../css/style.css';
Все работает превосходно, птички поют и т.д
Если это закомментить перестает находить css (логично)
Если расскоментить то он все еще не может нихуя найти

Помогает только полный ребут серва, после которого о чудо он снова видит файл build.css

Собственно как эту херню починить. Меня заебало каждый раз ребутать сервер.

Это к теме не относится но появилась такая проблема при работе с реактом, там честенько весь синтаксис рушится, а потом css файл перестает находить пишет Refused to apply style from 'http://localhost:8080/build.css' because its MIME type ('text/html')

Аноним 21/04/21 Срд 18:39:44 #500 №2003702 
>>2003662
У меня все то же самое. Это особенности работы.
Аноним 21/04/21 Срд 18:42:14 #501 №2003704 
>>2003702
Печально если так. Что характерно если не использовать MiniCssExtractPlugin а просто билдить все в один свалка-файл все работает и обновляется в реальном времени.

Но хотелось немного больше порядка чтоб css был отдельным файлом
Аноним 21/04/21 Срд 18:48:34 #502 №2003715 
>>2003704
А зачем тебе в дев-моде минификация КСС?
Аноним 21/04/21 Срд 18:54:25 #503 №2003721 
>>2003715
Он без минификации, просто так называется https://webpack.js.org/plugins/mini-css-extract-plugin/. Сам думал что там минификация из коробки, но нифига.
Аноним 21/04/21 Срд 18:55:06 #504 №2003723 
image
Тестирую роутер в одной аппе, и короч такая хуйня, в компненте Home делаю запрос fetch, он заместо обычного адреса, в начале припихивает ему localhost:3000/www.api.com из-за чего запрос не срабатывает, я так понял это роутер че то шалит? Че может влиять на добавление этого локалхоста в начале, я так понял это какие то дефолтные настройки роутера
Аноним 21/04/21 Срд 19:00:09 #505 №2003726 
>>2003497
Томущо json(а можно и blob) надо распарсить.
Аноним 21/04/21 Срд 19:18:29 #506 №2003743 
image
>>2003723
Дело не в роутере, лол. Удалил его, все равно криво отправляется, сука не пойма че за баг. В соседней аппе все ок работает, а тут залупа с адресом какая-то
Аноним 21/04/21 Срд 19:34:14 #507 №2003763 
2021-04-21 19-29-53.mp4
Sup сделал аналог двача(на минималках)
так же делал аналог аск.фм, он более доработанный чем имиджборда.
Подскажите какой это уровень? Стек PERN + MobX
Можно ли устроиться с этим куда нибудь?
Подобные сервисы занимает сделать 1-3 дня с бесконечными перерывами поесть, позалипать вк, поссать, съездить в качалку и тд.
Аноним 21/04/21 Срд 19:35:33 #508 №2003766 
image.png
>>2003723
Твой сервер на локалхосте, но ты пытаешься с него фетчить другой сайт, не прописывая схему, в итоге фетч это распознает как локальный путь. Пиши fetch("http://themealdb.com/api/...") и ебись с отключением CORS в браузере
Аноним 21/04/21 Срд 19:39:47 #509 №2003772 
image
>>2003766
Я так и пишу, и все равно какая-то залупа. Лол. Мож апишка какая-то кривая. Буду копаться щас. Вообще с апи уже много работал, до этого штук 5 апи перепробовал все ок было, это первая которая вот чудит чет
Аноним 21/04/21 Срд 19:41:35 #510 №2003773 
>>2003772
Не пишешь. Схема - это http или https, в твоем запросе ее нет.
Аноним 21/04/21 Срд 19:42:27 #511 №2003776 
>>2003773
Понял ща попробую, спс
Аноним 21/04/21 Срд 19:44:25 #512 №2003779 
image
>>2003773
Век живи век учись, спасибо анончик.

Заметил что самые ебаные проблемы всегда самые легкие, которые тупо не замечаешь глазом, хотя они очевидные казалось бы.
Аноним 21/04/21 Срд 19:50:09 #513 №2003782 
>>2003772
И все это можно сократить до fetch().then(r => r.json()).then(setCatalog)
Аноним 21/04/21 Срд 20:02:41 #514 №2003786 
>>2003782
(async () => console.log(await (await fetch("")).json()))()
Аноним 21/04/21 Срд 20:09:58 #515 №2003789 
>>2003632
&&
Аноним 21/04/21 Срд 21:05:23 #516 №2003817 
>>2003653
Тернарный оператор красивее, лаконичнее. Я легко и быстро набираю его, не отрываясь от своего смузи. А if-else громоздкая и некрасивая конструкция.
Аноним 21/04/21 Срд 21:47:28 #517 №2003837 
>>2003817
потому что ты ничего сложнее формочек не писал

нормальные приложения обрабатывают nullable значения тем или иным образом

выбрасывают эксепшены, меняют логику, делают еще что-то
в одну строчку обработку null ты не опишешь если это не hello world
Аноним 21/04/21 Срд 21:56:57 #518 №2003854 
>>2003817
Но ведь тебе не нужно if-else, дурачина, тебе нужен просто if. Можешь в одну строчку его написать, так и быть: if (true) sosatHui()
Аноним 21/04/21 Срд 22:13:32 #519 №2003870 
>>2003377
Ничего не надо перемещать, а сделать оверлэй с ошибками, и каждая из них - ссылка на поле.
Аноним 21/04/21 Срд 22:14:29 #520 №2003871 
>>2003497
Да промиса резолвишь ты хотел сказать?
Катимся Аноним 21/04/21 Срд 22:28:34 #521 №2003897 
>>2003892 (OP)
>>2003892 (OP)
>>2003892 (OP)
Аноним 27/04/21 Втр 13:45:54 #522 №2010097 
Codepen
comments powered by Disqus

Отзывы и предложения