Программирование

Ответить в тред Ответить в тред
Check this out!
JS Thread #209 /js/ Аноним 12/04/21 Пнд 14:35:10 19937051
image 56Кб, 1050x1050
1050x1050
Предыдущий тред: >>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 19937182
Mobx
Аноним 12/04/21 Пнд 14:53:49 19937253
Аноним 12/04/21 Пнд 14:57:17 19937274
Сап, jsач, нужна твоя помощь (сам ещё только вкатываюсь).

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

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

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

А вот с удалением серьёзные проблемы. Если, например, цикл дошёл до какого-то промиса и ждёт его, а в это время какая-то другая асинхронная функция удалила этот промис из массива, то как об этом узнать и прервать бессмысленное ожидание промиса, который уже удалён из массива?
Аноним 12/04/21 Пнд 15:03:45 19937335
Screenshot from[...].png 22Кб, 954x171
954x171
Аноним 12/04/21 Пнд 15:39:02 19937766
Аноним 12/04/21 Пнд 15:46:49 19937857
>>1993727
>вкатываюсь
не лезь, дебил она тебя сожрёт


>Суть:
>пук

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

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

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

Тебе нужен async queue. Всё, больше не приходи сюда.
Аноним 12/04/21 Пнд 16:22:45 19938248
1234.jpg 80Кб, 888x480
888x480
Репощу сюда из предыдущего треда.
Здарова, вебаны. Такое дело. На 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 19938349
>>1993824
> На https://duckduckgo.com при нажатии на капс форма поиска теряет фокус

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

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

У меня фокся 87 все работает
Аноним 12/04/21 Пнд 17:06:53 199387112
160112.jpg 250Кб, 1920x1200
1920x1200
>>1993845
>>1993843
>>1993834
>>1993824
Всё, я разобрался. Это из-за какого-то косяка в i3. Когда делаешь биндинг на любую клавишу/сочетание, это происходит. Странно, что это эта "особенность" оконного менеджера проявляется исключительно в браузере и исключительно на одном сайте.
Аноним 12/04/21 Пнд 17:31:52 199391413
У меня есть в стейте типо статус приложухи isUpdated. Короче некоторые экшены при попадании в редюсер изменяют его с true на false. Хочу чтобы если flase, то у меня фетчилась дата с сервера.
Как сделать чтобы функция мониторила статус isUpdated и автоматически что-то фетчила с сервера? В useEffect прописать state.isUpdated? Но тогда это получится бесконечный цикл фетчей.
Аноним 12/04/21 Пнд 17:40:52 199392614
Аноним 12/04/21 Пнд 17:42:33 199392715
Аноним 12/04/21 Пнд 18:45:31 199399116
Анон, как сохранить массив из express в postgresql
чтобы каждый элемент был в отдельной строке.
Аноним 12/04/21 Пнд 19:18:25 199402617
>>1993991
Обойти массив и заинсертить каждый его элемент в постгру.
Аноним 12/04/21 Пнд 19:52:05 199404518
Почему стрелочные функции плохо называть лямбда-функциями?
Аноним 12/04/21 Пнд 19:55:17 199405319
Аноним 12/04/21 Пнд 20:09:09 199406520
replace.png 113Кб, 1590x894
1590x894
Да еб вашу мать.

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

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

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

По регулярке проверяешь, совпадает ли введенный формат. И проверяешь начинается ли значение с 0, если да, то делаешь +value.toString() (если нужно дальше работать со значением как со строкой). Или тебе нужно еще проверять кейсы типо 102 -> 12?
Аноним 12/04/21 Пнд 20:18:38 199407926
>>1994074
> Почему реплейс не хочет заменять нули на пустой символ
Скрин или не было
Аноним 12/04/21 Пнд 20:18:53 199408027
>>1994074
>>1994071
Я не понимаю почему, но дальше всё передается так, как если бы нуля не было, как в твоем примере, даже без моей проверки. Но в самом инпуте остается 002, а дальше в корзину попадает просто обычная цифры 2, даже если её в консоль как строку вывожу. Я не могу понять почему нули не пропадают из инпута. Причем пустой символ явно заменяется на 0, и возможно каким-то хером пустой символ заменяется на 0 многократно? Потому что сама замена-то работает, что за пиздец?
Аноним 12/04/21 Пнд 20:23:31 199408928
>>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 199409429
>>1994079
>>1994077
Дело в том, что setProductCount принимает только число, ну и в целом там дальше проверок никаких делать не нужно из-за этого. Поэтому я любые введенные значения преобразую в число. Но вот дело в том, что мне просто из начала только для пользователя нужно убирать нули. И преобразования вида +value эти нули из инпута не убирают. Хоть и для дальнейших вычислений все нули пропадают если они стоят вначале.

Дальше в качестве функции я передаю коллбек вида setProductCount={(count) => (handleItemInputCounter(item, count))}. Чтобы потом это поле введенное обрабатывать. Но блядь, почему заменя корректно работает с каким угодно символом, кроме пустого значения? Такое ощущение, что пустое значение заменяется многократно на ноль. Как если в консоли ввести + и пустые кавычки
Аноним 12/04/21 Пнд 20:34:51 199410430
>>1994089
>Что тут странного?
Твой общий промис резолвится, потом ты добавляешь новый промис в исходный массив. Ожидаемое поведение?
Аноним 12/04/21 Пнд 20:35:35 199410731
>>1994080
Покажи че setProductCount делает. И компонент где используется значение productCount
Аноним 12/04/21 Пнд 20:35:39 199410832
>>1994094
А ты значение в инпуте обновляешь?
Аноним 12/04/21 Пнд 20:39:13 199411133
>>1994104
> >Что тут странного?
> Твой общий промис резолвится, потом ты добавляешь новый промис в исходный массив. Ожидаемое поведение?
Отсутствие действия. Если в массиве в какой-то момент не остаётся pending промисов (все или завершились, или удалились из массива), то текущая задача выполнена, общий промис завершился, дальше моя функция ничего делать не должна (а если вдруг надо, то её нужно заново вызвать).
Аноним 12/04/21 Пнд 22:31:14 199416034
>>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 199416235
>>1994160
Ой пизда, разметку проебал. Я не специально жирно написал, не стукайте
Аноним 12/04/21 Пнд 22:55:03 199417136
>>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 199421137
изображение.png 892Кб, 800x575
800x575
>>1994171
Спасибо большое, вот такого ответа мне вообще никто не давал, я думал у меня уже крыша едет и я чего-то очевидного не вижу. Наверное очевидное, да, но все же. Спасибо тебе большое
Аноним 12/04/21 Пнд 23:42:07 199422538
>>1994211
>вот такого ответа мне вообще никто не давал
А это потому что ты без кода пришел. Ну теперь то ты знаешь
Аноним 13/04/21 Втр 05:31:48 199432439
>>1993554 →
Никогда, все тестовые спокойно делаются на хуках, я не представляю для чего редукс сейчас необходим
Аноним 13/04/21 Втр 06:48:22 199432840
l
помогите пожалуйста Аноним 13/04/21 Втр 07:42:01 199433441
image.png 20Кб, 322x570
322x570
есть section
в нем лежат список, два заголовка и кнопка
при добавлении hover к section, нужно менять цвет у обоих заголовков и у элементов списка. я так понимаю, это можно сделать только путем использования js. ибо через css я уже несколько часов не могу понять КАК

я очень зеленый во всем этом деле, недавно загорелся желанием и пока начал с html и css, планирую изучать js как только буду достаточно понимать разметку и стили
Аноним 13/04/21 Втр 08:31:55 199435042
Анонсы, знает кто как сделать звуковое оповещение в 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 199435243
>>1994334
mySection:hover .zagolovok {
color: myColorWHenHovered;
}
Аноним 13/04/21 Втр 09:28:51 199437344
Аноним 13/04/21 Втр 09:30:10 199437445
image 3Кб, 168x60
168x60
image 13Кб, 776x83
776x83
image 7Кб, 383x158
383x158
кто шарит за паг: как мне в один миксин захуярить другой миксин?
Аноним 13/04/21 Втр 09:33:58 199437846
>>1994374
хотя там не только миксин, а вообще ничего не лезет внутрь, типа надо в шаблоне что-то прописать я понимаю, но не понимаю что
Аноним 13/04/21 Втр 10:03:44 199440147
ой всё нашёл надо block написать просто)
Аноним 13/04/21 Втр 10:28:52 199441248
image.png 15Кб, 351x312
351x312
image.png 22Кб, 356x587
356x587
>>1994352
получается я в скрипте прямо так и пишу, только меняю mySection, zagolovok на свои селекторы? просто я попробовал и не получилось кусочек css и то что он делает приложу, думаю, так будет логичнее
Аноним 13/04/21 Втр 10:29:15 199441349
>>1994412
>zagolovok
ААААААААААААА!
Аноним 13/04/21 Втр 10:46:28 199442050
1616770511908.jpg 77Кб, 878x584
878x584
Стоит ли идти работать в salesforce направлении? Поясните за него вкратце неофиту, какие плюсы-минусы и все такое.
Аноним 13/04/21 Втр 10:56:28 199442151
>>1994413
смузи уже навернул зумер?
Аноним 13/04/21 Втр 11:11:53 199443452
>>1994420
Ну морская пехота это универсальные солдаты, чуть какая заворушка и на передовую кидают, сам смотри как сильно жить хочешь.
Аноним 13/04/21 Втр 12:48:23 199451553
>>1994421
Какого смузи, сука? Если хочешь писать на русском - пиздуй в 1С!
Аноним 13/04/21 Втр 12:55:26 199452254
14914755291420.jpg 53Кб, 421x465
421x465
Какого-то хера навернулось форматирование кода в проекте, когда перешёл со стабильной версии VSCode на preview.

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

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

Установи Prettier
Cmd ctrl f зажми
Аноним 13/04/21 Втр 16:15:55 199472061
hover.gif 221Кб, 1266x861
1266x861
>>1994412
Нет, жс тебе не нужен
Аноним 13/04/21 Втр 16:31:01 199475462
image.png 874Кб, 811x579
811x579
учу жс и крайне не хватает общения с таким же лоускилом или может с кем поопытнее для легкости вкуривания, есть кто со схожим желанием?
Аноним 13/04/21 Втр 17:03:16 199480063
Аноним 13/04/21 Втр 17:18:55 199481264
>>1994754
Телега @radagant, можешь написать
Аноним 13/04/21 Втр 17:47:46 199484265
>>1994754
>>1994812
создайте конфу в телеге для таких, может подтянутся больше людей
больше проблем, больше решений, больше опыта, профит
Аноним 13/04/21 Втр 17:52:51 199485066
>>1994842
Хуевая затея, там кроме рака нихуя не будет, мимо олд js тредов
Такие конфы создавались 5 раз, на 2й-3 день они удалялись, пусть лучше в личке общаются
Аноним 13/04/21 Втр 17:54:11 199485467
>>1994850
>на 2й-3 день они удалялись
Это потому что кто-то чмоня, которая любит вдыхать только ИЛИТНЫЙ ПЕРДЕЖ. Наоборот, чем больше всякого пиздеца и треша, тем лучше.
Аноним 13/04/21 Втр 17:58:05 199486268
>>1994754
Идея хуйня. Вы будете двумя долбоебами которые ничего не знают, вас будет тошнить от друг друга, потому что в друг друге вы будете видеть самих себя.
Аноним 13/04/21 Втр 18:01:01 199486569
Есть кнопка, по умолчанию серая. Есть функция, которая при нажатии на эту кнопку меняет её цвет с серого на зелёный. При перезагрузке страницы, цвет меняется на цвет по умолчанию, а я хочу, чтобы он сохранялся. Как я понимаю, это из-за того, что у меня вся страничка отрисовывается тремя файлами HTML, CSS и JS. Соответственно, никакого бэкенда у меня нет, и каждый раз браузер получает один и тот же исходный файл, где кнопка серая. Вопросы следующие: можно ли каким-то образом менять CSS-правило не в браузере, а непосредственно в исходном файле, или обязательно добавлять для этого бэкенд? Если всё таки придётся добавлять его в структуру проекта, то как это сделать? И правильно ли я вообще думаю?
Аноним 13/04/21 Втр 18:02:42 199486970
>>1994862
если они развиваются не по одному курсу, то может нормально сработать, допустим сегодня чел1 выучил тему 1, чел2 выучил тему 2, но в любой момент они могут поделиться знаниями друг с другом, или разобраться в теме 3
Аноним 13/04/21 Втр 18:05:15 199487471
>>1994865
Цвет кнопки должна для одного человека меняться и за ним привязываться, или чтобы любой человек мог зайти и нажатием опять поменять цвет кнопки для всех?
Аноним 13/04/21 Втр 18:13:57 199487672
>>1994869
У меня был похожий опыт, в итоге мы пообщались года 3 назад. Парнишка был с дамбасса, хотел уехать в Харьков если ты все-таки переехал - красавец. В итоге мы пиздели на отвлеченные темы, что там в дамбассе, обсуждали семейные обстоятельства и прочую хуиту, но только не кодинг.
Аноним 13/04/21 Втр 18:14:07 199487773
Аноним 13/04/21 Втр 18:25:34 199489774
>>1994842
Я лс ищу конфу или таких же нубов для совместного решения задач
@peacedoze
Аноним 13/04/21 Втр 18:29:38 199490375
кто вкатится тот гей
Аноним 13/04/21 Втр 18:50:48 199493476
image.png 10Кб, 556x134
556x134
image.png 8Кб, 555x140
555x140
>>1994865
Ещё пока ковырялся со сменой цвета наткнулся на странную фичу. По умолчанию цвет кнопки серый, значит при проверке условия она должна сразу же поменять цвет? Неее, нифига подобного. При первом нажатии кнопка остаётся серой, дальше работает как по маслу. Задался вопросом "Почему так?", добавил перед проверкой условия вывод цвета в консоль, и оказывается, при первом нажатии у кнопки вообще как будто нет цвета. Как это понимать?
Аноним 13/04/21 Втр 18:52:40 199493777
Аноним 13/04/21 Втр 18:55:21 199494178
image.png 5Кб, 306x140
306x140
>>1994937
В ксс цвет тоже изначально указан как серый
Аноним 13/04/21 Втр 20:00:33 199501079
Аноним 13/04/21 Втр 20:01:36 199501180
Аноним 13/04/21 Втр 20:06:55 199501881
Аноним 13/04/21 Втр 20:21:06 199503182
Как заебало нахуй, что невозможно найти вменяемых статей по работе разных модулей (даже популярных) с тайпскриптом. Я такой человек, что для того чтобы понять что-то на 100%, мне мало прочитать доки, мне надо увидеть code example, все целиком, как что работает. Какой-нибудь маленький пример.
И как же заебало, что блять негры и женщины набранные по квотам пишут ебаные статьи с нерабочим кодом. Вот я 5 минут назад читал статью, модуль Х с тайпскриптом и там, блять, ни в одной функции нет типа возвращаемого значения. Ну типо нахуй нужно, угнетатели хуевы понапридумывали говна. Писал негр. В другой статье половина кода типизирована как any. Охуенно. Писала женщина. Пиздец, заебись блять. Охуенный у тебя тайпскрипт.
Я тоже не какой-то суперпрограммист, а скорее всего хуевый. Но каждый ебаный раз, когда я открываю какую-то статью почитать, у меня на каком-то блять подсознательном уровне возникает понимание, что автор нихуя не понимает о чем пишет, а свой код даже не в состоянии запустить.
Аноним 13/04/21 Втр 20:23:23 199503483
>>1995031
Но ведь любой модуль работает с тс так же, как и с жс, просто с типами
Аноним 13/04/21 Втр 20:26:10 199504084
>>1995034
Нет, нихуя. Уникальные типы возвращаемых значений, уникальные аргументы, интерфейсы и т.д. И приходится либо сидеть и ебать себе мозги чтением лапшеобразного d.ts файла, либо прочитать одну годную статью, где вменяемо используются основные фичи.
Аноним 13/04/21 Втр 20:29:22 199504585
Как же заебало, что я не могу понять синтаксис языка и во всех примерах в разные места засовывают разные штуки и добавляют новые поверх, хуй поймешь куда можно всунуть строку, куда нет.
Аноним 13/04/21 Втр 20:32:35 199505086
>>1995031
>невозможно найти вменяемых статей по работе разных модулей
Напиши свою.
Аноним 13/04/21 Втр 20:35:03 199505387
>>1995040
Про какой модуль речь то?
Аноним 13/04/21 Втр 21:00:20 199507988
>>1995045
Найди гайды аля делаем интернет магазин на тс и смотри, ну ты че
Аноним 14/04/21 Срд 00:43:31 199536489
Аноним 14/04/21 Срд 05:28:38 199546990
Аноним 14/04/21 Срд 06:38:12 199547691
>>1994720
ты просто лучшее, что произошло со мной за сегодняшний день, благодарю
Аноним 14/04/21 Срд 08:40:14 199548092
14597804401720.jpg 18Кб, 500x375
500x375
Мне надо провести code-review, с указанием на возможные ошибки \ проблемы.
Как оценить стоимость выполнения этой работы?

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

Куда копать, чтобы реализовать такую штуку? Пока на ум приходит IndexedDB в API браузера, но не совсем понятно как "отлавливать" автоматически момент когда сеть потеряется/снова вернется. Раз в n минут опрашивать бэкенд и смотреть на статус код ответа кажется ужасным решением, т.к. это не гибко, не безопасно и есть риск потерять данные.
Аноним 14/04/21 Срд 11:11:20 199558796
Аноним 14/04/21 Срд 11:21:16 199559397
>>1995573
> но не совсем понятно как "отлавливать" автоматически момент когда сеть потеряется/снова вернется.
Ты почему даже не попробовал в гугл этот вопрос вбить, программист?
Аноним 14/04/21 Срд 11:25:03 199559798
Посоветуйте спич рекогнишн модуль который заведётся в электроне. А если он ещё и в оффлайне будет работать это + балл.
Аноним 14/04/21 Срд 11:30:34 199560199
Аноним 14/04/21 Срд 11:38:01 1995607100
>>1994941
Может у тебя скрипт до стилей подключен?
Аноним 14/04/21 Срд 11:41:07 1995609101
>>1994720
А слабо шоб при наведении на один, второй тоже менялся?
Аноним 14/04/21 Срд 11:47:56 1995612102
>>1995609
На то и каскадность что так можно
Аноним 14/04/21 Срд 12:14:24 1995621103
Аноним 14/04/21 Срд 12:27:37 1995635104
Аноним 14/04/21 Срд 12:33:16 1995644105
Аноним 14/04/21 Срд 12:59:31 1995661106
1.mov 936Кб, 1208x836, 00:00:08
1208x836
Аноним 14/04/21 Срд 12:59:37 1995662107
bti.jpg 92Кб, 1511x472
1511x472
krasnyie-linii-[...].jpg 89Кб, 1200x729
1200x729
post-173528-0-6[...].jpg 134Кб, 833x689
833x689
>>1993705 (OP)
Можете посоветовать библиотеку? Которая бы предоставила некий холст, на котором можно позиционировать объекты по XY, который можно приближать-отдалять, перемещать/прокручивать, который бы позволял размещать на себе объекты (на которые бы также распространялось приближение-отдаление), выводить какую-то информацию, удалять ее, ну и пагинацию поддерживал в идеале.

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

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

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

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

Правильно я понимаю?
Аноним 14/04/21 Срд 14:01:23 1995693109
>>1995661
Белое пространство между ними тоже подсвечивает, а не должно.
Аноним 14/04/21 Срд 14:03:35 1995695110
>>1995693
Шиз все настраивается, читай доку
Аноним 14/04/21 Срд 14:04:42 1995697111
>>1995674
Это чтобы ты помнил что работаешь на супер фреймворке, пасхалка такая...
Аноним 14/04/21 Срд 14:06:12 1995699112
>>1995695
Но там написано, что мы не можем получить парент из чайлда! Как же быть? Неужели жс?!
Аноним 14/04/21 Срд 14:06:30 1995700113
>>1995697Да не я уже понял, это что бы this корректно работал в конструкторе, хуета короче ебаная. Я всегда через стрелочные пишу. Да и ваще на хуках. Щас прост копаюсь в мелких нюансах перед собесом
Аноним 14/04/21 Срд 14:07:29 1995702114
>>1995699Ты че долбаеб? Это по другому делается, через вложенности. Иди штудируй интернет, ты еще зеленый для этого треда
Аноним 14/04/21 Срд 14:09:01 1995704115
Аноним 14/04/21 Срд 14:17:55 1995716116
>>1995702
<body>
<nav><div /></nav>
<nav><div /></nav>
<nav><div /></nav>
</body>

При наведении на любой див, подсвечиваются только дивы. Тело не трогаешь.
Аноним 14/04/21 Срд 14:35:25 1995738117
>>1995704
Выглядит как огромный и сложный 3д-движок, ты ничего не перепутал?
Аноним 14/04/21 Срд 14:47:01 1995748118
>>1995738
Покрывает все твои хотелки. А на готовенькое ты не в тот язык пришел.
Аноним 14/04/21 Срд 14:49:50 1995752119
image.png 1911Кб, 1024x1300
1024x1300
>>1995748
>на готовенькое ты не в тот язык пришел
>JS Thread
Аноним 14/04/21 Срд 14:53:54 1995754120
>>1995748
Так и канвас все мои хотелки покрывает. И голый жс. И голый ассемблер тоже.
Аноним 14/04/21 Срд 15:00:05 1995757121
>>1995754
Ну так выбери уже что-нибудь одно и не выебуйся.
Аноним 14/04/21 Срд 15:01:05 1995758122
Аноним 14/04/21 Срд 15:30:25 1995784123
>>1995716
><div />
Можешь пройти нахуй.
Аноним 14/04/21 Срд 15:31:32 1995786124
>>1995752
Так жс - вечное запиливание костылей.
Аноним 14/04/21 Срд 15:44:01 1995795125
>>1995786
Если мне нужно будет пилить костыли я открою вим и буду писать слешинклуд.
Аноним 14/04/21 Срд 16:00:30 1995814126
>>1995784
>пук среньк
Не сделать без жса. Не сделать.
Аноним 14/04/21 Срд 16:33:01 1995854127
>>1995814
Ты и html тэг без ЖСа не можешь написать.
Аноним 14/04/21 Срд 17:05:31 1995902128
Привет двач. Сейчас будет конченная просьба, но тем не менее.
Я 6 лет пишу на ноде, уже дохуя сениор с зп 5к, но есть одна толстая вонючая проблема. Я не понимаю ООП, SOLID и такие простые штуки как DI.
Как, сука, это понять? Может кто-то заделиться материалом для ну совсем тупых?
Аноним 14/04/21 Срд 17:12:59 1995912129
MongoDB
Аноним 14/04/21 Срд 17:13:03 1995913130
Аноним 14/04/21 Срд 17:13:39 1995915131
>>1995597
Халп, у меня уже пердак горит на этом обоссаном npm нихуя не работает.
Аноним 14/04/21 Срд 17:19:09 1995929132
>>1995902
Нахуй тебе ООП в жаваскрипте? Если до 5к дорос на ноде без ООП, то может этот ООП нахуй не нужен был?
Аноним 14/04/21 Срд 17:22:21 1995932133
>>1995913
Спасибо, гляну

>>1995929
На собесах стыдно когда по основам ебут. Тоже считаю что ооп в хуй ебать можно, но идти в ТЛы без понимания такой хуйни нельзя
Аноним 14/04/21 Срд 17:25:27 1995939134
image.png 20Кб, 300x188
300x188
>>1993705 (OP)
Не понимаю почему при перетаскивании появляется просто запрещающий значок без самого элемента, а должно быть как на пике
взял тутор даже, там на видео с таким же кодом видно элемент, у меня просто значок
гуглил дев мозила, там в апи днд ничего про такое не сказано
>>1995902
>ООП
я сам сейчас начинаю пользоваться тайпскриптом, не понимаю зачем, но много где нужен
Наверное стоит поделать что-то простенькое типа свое апи для туду листа какого-нибудь + почитать что-то типа введения в ооп
Аноним 14/04/21 Срд 17:25:42 1995941135
Аноним 14/04/21 Срд 17:26:00 1995942136
>>1995915
https://www.npmjs.com/package/ibm-watson
Любая либа, которая не будет отправлять твою хуйню куда-то там в какие-то сервисы будет работать оффлаен. Посмотри вот это, глянь как происходит рекогнишен. Если это тупо апишка, то в оффлайне не оживёт. В остальном тебе похуй куда ставить потобные тулзы - на экспресс ебучий, нест, хапи или электрон - и то и то нода
Аноним 14/04/21 Срд 17:35:37 1995957137
>>1995607
Стили в head, скрипт перед закрытием body, всё ок
Потестил с другими тегами и параметрами, та же фигня. Есть одна безумная теория, что в DOM, с которым я работаю, значения стилей по умолчанию всегда "", и меняются только когда я начинаю с ними работать. Я шизик, или такое возможно?
Аноним 14/04/21 Срд 17:38:01 1995965138
>>1995915
Вообще наверное в оффлайне это залупа полная, у тебя в любом случае будет какая-то апишка, которая будет всю эту хуйню слать в какой-то сервис, который тебе уже будет отправлять результат обработки, либо ты просто добавишь толстую жирную либу в свой проект. Не надо так. В зависимости от того, насколько критичен спич рекогнишен можно либо использовать апишки под это дело
https://developer.mozilla.org/en-US/docs/Web/API/SpeechRecognition
либо изъебнуться и прикрутить что-то работающее локально, либо еще больше изъебнуться и прикрутить third party на каких-то сях или пистоне и реализовать интерфейс общения с этой залупой. Но в последнем случае будет высока вероятность, что ты сделаешь велосипед и легче будет поискать что-то готовое. Но с третьей блять стороны есть вероятность что это готовое будет дырявое и нести для твоего проекта потенциальную опасность, поэтому три раза подумай, и уже потом добавляй новую говнолибу в свой проект
>>1995942 -кун
Аноним 14/04/21 Срд 17:46:13 1995984139
Screenshot from[...].png 60Кб, 857x518
857x518
Жив ли ембер в 2021? Стоит ли на него перекатываться? Предлагают перекатиться, но я хз стоит ли проманивать ривакт.
Аноним 14/04/21 Срд 17:47:53 1995989140
>>1995984
Жив, но не стоит. Реакт ебош дальше, сейчас на реактовиков ёбнутый спрос, не распыляйся
Аноним 14/04/21 Срд 17:57:39 1996008141
>>1995989
Спасибо. Просто если загуглить ember 2021, то дохуя хвалебных статей от емберодрочеров.
Аноним 14/04/21 Срд 18:00:19 1996013142
>>1995957
Я сейчас проверил, там в style вообще пусто, то есть не пусто, а у всех параметров пустая строка. Втф.
Аноним 14/04/21 Срд 18:05:22 1996020143
>>1996008
Ну пусть дальше дрочат, тебе-то что? Реакт популярнее и востребованнее, это все что тебе надо
Аноним 14/04/21 Срд 18:07:54 1996030144
>>1995957
Похоже style это именно стили на конкретном элементе а не ксс. Тебе немножко надо переписать логику: добавляй и убирай классы, а не напрямую стиль.
Аноним 14/04/21 Срд 18:20:06 1996050145
>>1994934
Так, чтобы ДОМу со стилями работать, надо сперва распарсить стили из ксс и прикрутить к элементу, а потом уже считывать значение. Ты можешь проверить это, смотря на элемент в ДОМе - значение появится только после нажатия кнопки.
Соответственно до вызова `style` на элементе никакого значения нет и нужно сперва вызвать `getComputedStyle()`, чтобы его присвоить.
Именно поэтому любой подход, дрочащий стили напрямую через ДОМ - всегда лютый оверхед по сравнению с манипуляцией строки класса или других аттрибутов.
TC39 дал им CSS, который всегда работает на парралельном потоке и ускоряется видимокартой, крась блять кнопки им. Говорит не хочу красить кнопки списком стилей, хочу жрать говно и красить кнопки через костыльную ассинхронщину на основном потоке. И это фронтэндеры блять? Пидоры это, а не фронтэндеры.
А насчёт сохранения состояния кнопки без бэкенда, тут только `localStorage` поможет.
Аноним 14/04/21 Срд 18:20:17 1996052146
>>1995939
Тайпскрипт не значит ооп
Аноним 14/04/21 Срд 18:25:35 1996065147
image.png 147Кб, 966x568
966x568
image.png 198Кб, 966x568
966x568
>>1996020
Я не споро, анон. Просто финская фирма предлагает перекатиться удаленно к ним на ембер. И периодически вакансии мелькают с ним и сразу в описании ваканси обычно пишут ЕМБЕР ЭТО ОХУЕННО, МЫ РАССКАЖЕМ ПОЧЕМУ ЕМБЕР ОХУЕННЫЙ. Но я вот не особо задумывался правда ли это, а сейчас задумался и ты вот говоришь что ембер говно и статистика тоже не даст соврать. Судя по всему это скоро новый легаси.
Аноним 14/04/21 Срд 18:30:26 1996074148
>>1996052
А толку от него тогда?
Аноним 14/04/21 Срд 18:36:07 1996087149
>>1996065
Это уже легаси. Эмбер может прекрасно ложиться на их проект, все такое, но по факту Эмбер нахуй не нужен. Он может и не быть говном, но это никак не поменяет того факта что тебе выгоднее реакт.
У нас на проекте используется hapi. Это сука пиздец, от него блевать хочется. Но архитектор залупится писать новые сервисы на чем угодно кроме него, мол, нихуя не знаю, хапи заебись, остальные фреймворки нинужны.
С эмбером мб та же история и там такой же мамонт сидит и залупится юзать реакт. так-то реакт тоже говно и мб он это прекрасно понимает и поэтому топит за эмбер, но с финансовой стороны вопроса это никак не меняет тот факт, что реакт востребованнее и дороже.
Аноним 14/04/21 Срд 18:58:06 1996126150
Аноним 14/04/21 Срд 18:59:14 1996131151
132321321321123[...].png 85Кб, 1551x867
1551x867
Аноны приветик. Как быстро ебашить сайтики типо такого?
sorbet.org

Я так понля это что то типо vue но за дизайн что отвечает? типо css фреймворк какой то?
Аноним 14/04/21 Срд 19:01:03 1996134152
>>1996131
Это называется html/css.
Аноним 14/04/21 Срд 19:01:06 1996135153
>>1996131
А что тут особенного? Я такую хуйню часа за пол на чистом хтмл+цсс сверстаю.
Аноним 14/04/21 Срд 19:06:56 1996143154
>>1996135
>>1996134
Есть гайды? как делать именно такие няшные кнопки и верстку?
все равно есть ощущение что они используют ккакой то фреймворк
Аноним 14/04/21 Срд 19:10:57 1996148155
>>1996143
Академию смотри наверное, я хз.
Аноним 14/04/21 Срд 19:11:23 1996149156
>>1996143
Делается через фреймворки `border-radius` и `background-color`.
Аноним 14/04/21 Срд 19:26:58 1996168157
Аноним 14/04/21 Срд 19:29:55 1996173158
1616874703136.jpg 54Кб, 444x580
444x580
>душнила
Аноним 14/04/21 Срд 19:59:08 1996220159
>>1996131
укради где-то курс анжелы ю беком э фулл стак веб девелопер, блок с хтмл+цсс, там примерно такой сайт пошагово делают
Аноним 14/04/21 Срд 22:29:43 1996392160
Коллеги, такой вопросец: имеется типикал массив объектов типа {id:intiger, name:string}.
Нужно удалить из него объект, зная только индекс.
Обычно я использую такой подход - https://jsfiddle.net/murbhpek/1/
Или есть более красивое/удобное решение?
Аноним 14/04/21 Срд 22:38:22 1996401161
Аноним 14/04/21 Срд 22:38:51 1996402162
>>1996392
Через рор это не делается?
нюфак
Аноним 14/04/21 Срд 23:05:52 1996415163
Аноним 14/04/21 Срд 23:27:21 1996426164
допустим я делаю сайт и использую какую нибудь стороннюю либу
есть ли какая нибудь умная тулза которая выкинет из кода этой либы все то что я в своем основном проекте не использовал? то есть уменьшит размер js файла
Аноним 14/04/21 Срд 23:39:59 1996432165
Аноним 14/04/21 Срд 23:45:59 1996437166
>>1996432
по описанию он именно собирает в кучу модули
он разве может удалить прям из кода этих модулей все лишнее?
Аноним 15/04/21 Чтв 00:03:03 1996444167
Аноним 15/04/21 Чтв 00:04:35 1996446168
>>1996437
Зависит от модуля и как ты его импортируешь/устанавливаешь в проект.
Аноним 15/04/21 Чтв 00:04:57 1996448169
Аноним 15/04/21 Чтв 00:05:25 1996449170
>>1996446
да тупо пишу import PIXI.js
Аноним 15/04/21 Чтв 00:10:31 1996450171
image.png 99Кб, 887x738
887x738
Аноним 15/04/21 Чтв 00:23:52 1996455172
>>1996449
Тут вебпук не будет волшебной таблеткой, так как у пикси даже дефолтного импорта нет. С пикси надо пердолиться по-особому и ставить отдельные пакеты вида `@pixi/${name}`. Скорее всего придётся выделить отдельный файл для реэкспорта таких пакетов с одного места, если тебе конечно писать отдельный импорт каждый раз не норм.
Аноним 15/04/21 Чтв 00:27:50 1996457173
>>1996455
чо то сложновато
наверно выберу пикси.мин версию а потом в вебпаке еще выберу продакшен минификацию
Аноним 15/04/21 Чтв 00:35:56 1996461174
Аноним 15/04/21 Чтв 00:38:39 1996462175
>>1996426
С Пикси не получится, если только не делать кастом билд.

мимо 3 года пикси + тс господин
Аноним 15/04/21 Чтв 00:39:44 1996465176
>>1995902
Значит ты не сеньор нихуя.
Аноним 15/04/21 Чтв 00:42:13 1996466177
>>1996462
может ты мне подскажешь
мне пикси нужен для создания viewport на канвасе чтобы можно было его зумить приближать и т д. Впоследствии будет пиксельный редактор типо. Я ведь не ошибся в выборе? я посомтрел и мин версия пикси примерно 500кб плохо конечно но что поделаешь...
Аноним 15/04/21 Чтв 14:57:03 1996964178
>>1996149
А как же css фреймворк box-shadow?
Аноним 15/04/21 Чтв 15:29:09 1997025179
>>1995902
Я знаю прямо то что нужно тебе, но не скажу, потому что на дваче нет лички, а плодить конкурентов разбалтывая годноту я не хочу.
Аноним 15/04/21 Чтв 15:38:56 1997036180
>>1997025
>а плодить конкурентов разбалтывая годноту я не хочу.
Типикал токсик пидораха.
ВСЕ СЕБЕ, ДОМА ПРИХОДИТСЯ, КРУГОМ ВРАГИ, НАМ ВСЕ ЧУЖИМ НИЧЕГО, УХ ПРОВАЛИТЬСЯ БЫ ЭТОМУ ПЕТЬКЕ! ЛИШЬ БЫ НАШ САРАЙ ВЕТРОМ НЕ СДУЛО, УИИИИ ХРЮК ХРЮК. СМОТРИ КАКУЮ ШТУЧКУ ПРИНЕСЛА ТАКОЙ НИ У КОГО НЕТ!
Как хорошо что за бугром люди живут а не орки.
Аноним 15/04/21 Чтв 15:43:45 1997043181
>>1996149
Вообще то это паттерны нызывается, есть еще инлайновые гайд-лайны
и флексовые митапы.
Ну и смузи элементы тож норм.
Аноним 15/04/21 Чтв 16:26:55 1997112182
>>1996013
Вот-вот, я об этом же
>>1996030
Да, наверное так будет удобнее, и в целом код станет понятнее. Я буквально только вчера увидел такую реализацию, самому как-то в голову не приходило, что можно вешать стили на классы и навешивать сами классы
Аноним 15/04/21 Чтв 16:27:45 1997113183
>>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 1997122184
Какая есть простенькая либа для валидации JSON на клиенте? Нужно чисто проверка полей а-ля required: True, empty: False, type: number. AJV же больше для сервер-сайда заточен?
Аноним 15/04/21 Чтв 16:38:55 1997130185
download.jpeg 5Кб, 194x260
194x260
Аноним 15/04/21 Чтв 18:40:52 1997278186
Пацаны как думаете если уже сам в ручную могу с любыми api работать, вывести инфу, настроить поиск, собрать электронный магазин на коленке, редукс сторы и хуки тож пишу уже по памяти, базовый js всякие замыкания, эвентлупы и прочую дрисню знаю и подавно. Есть смысл аплаиться на джунчика? Я знаю точно что да, но мне вот пришла в голову мысль угареть по алгоритамам на пару месяцев, книжки и туториалы посмотреть что бы в ооп шпрехать сильнее. Есть смысл алгоритмы изучать, или реакто макакам на алгоритмы похуй?
Аноним 15/04/21 Чтв 18:41:29 1997280187
>>1997278
Или лучше два месяца потратить на ковыряние реакта дальше?
Аноним 15/04/21 Чтв 18:47:52 1997284188
>>1997278
На алгоритмы в целом похер, самые нужные все уже давно придуманы и лежат в библиотеках. Лучше учись в чистый код, рефакторинг, технологии и методологии разработки ПО.
Аноним 15/04/21 Чтв 18:53:50 1997293189
Аноним 15/04/21 Чтв 18:56:20 1997294190
image 1092Кб, 942x1330
942x1330
>>1997284
Кстати насчет чистого кода, в тему будет эта книжка, или другие какие интересные есть?
Или ты вообще про другое?
Аноним 15/04/21 Чтв 19:49:06 1997342191
>>1997284
Эти вещи изучать лучше на практике. То есть - пиздовать на джуна.
Аноним 15/04/21 Чтв 19:59:40 1997349192
1618509482752.jpg 34Кб, 277x396
277x396
Привет, а вы можете показать какие-нибудь свои работы? Похуй даже скрин пойдет, а то я вообще не знаю с чего начать и к чему стремиться. Идей нуль.
Аноним 15/04/21 Чтв 20:02:30 1997350193
>>1997349
Смотришь на любой популярный проект и делаешь его клон. Как можешь так и делаешь
Аноним 15/04/21 Чтв 20:05:01 1997356194
>>1997350
А дальше что? Что мне с ним делать, если я даже не знаю с какой стороны подходить? Я только сегодня узнал, что макеты отдельные люди делают.
Аноним 15/04/21 Чтв 20:09:21 1997360195
>>1997356
Скачай с торента курсы и посмотри че там делают
Аноним 15/04/21 Чтв 20:18:24 1997374196
>>1997349
Может за тебя ещë и работу сделать? Работай, пëс.
Аноним 15/04/21 Чтв 22:19:22 1997468197
>>1997349
Тут нет ни у кого примеров работ. На дваче одни теоретики сидят.
Миллионы никогда не работавших вкатывальщиков под NDA бога.
Аноним 15/04/21 Чтв 23:08:09 1997499198
Реально ли выучить реакт за ночь?
Аноним 15/04/21 Чтв 23:23:04 1997513199
>>1997499
10 минут достаточно. Че там учить, это же просто рендер-функция
Аноним 16/04/21 Птн 12:43:58 1997885200
12231312312.png 25Кб, 736x623
736x623
https://www.npmjs.com/package/idb
Это код с официальной страницы пакета IDB для упрощения работы с indexedDB. Вопрос на миллион долларов: что здесь не так?
Поясняю: может быть я пиздец тупой и вижу ошибку там, где ее нет. А может быть все норм и я просто не понимаю каких-то осоебнностей использования языка. Короче, полчаса-час на ответы, либо до трех первых ответов, либо до первого угадавшего, а потом посмотрим, обосрался ли я.
Аноним 16/04/21 Птн 12:44:26 1997887201
>>1997280
я конечно дико извиняюсь но что в этом реакте ковырять эти два месяца?
Аноним 16/04/21 Птн 12:59:24 1997904202
>>1997887
Проектики разные в портфолио пилить, хотя у меня их уже 5 штук спа в портфолио полноценных. Да пришел к выводу что буду готовиться к собесам месяц, потом пойду их проходить. У меня такое ощущение что вот чегото не хватает сейчас, а именно на собесе и зададут такие вопросы которые я не знаю, поэтому постоянно готовлюсь дотошно что бы быть сильным на вопросах. Но уже складывается ощущение что можно и на мидла идти кек, короче свои тараканы в голове в плане подготовки, не хочу выглядеть как васян вкатун с курсов, которых 90% и которые сливаются на собесах
Аноним 16/04/21 Птн 13:02:37 1997909203
>>1997278
Структуры освой, для ООП можешь паттерны глянуть.
Аноним 16/04/21 Птн 13:16:54 1997925204
>>1997885
>что бы вы улучшили в этом коде?
Аноним 16/04/21 Птн 13:21:28 1997930205
>>1997904
>на собесе и зададут такие вопросы которые я не знаю
Поэтому нужно брать количеством, а не выжидать конкретную "свою" вакансию. Джуну надо каждый день подаваться куда только можно. А так можно вечно ждать сидеть, это глупо.
Аноним 16/04/21 Птн 13:26:47 1997941206
>>1995662
Анон, помогай. Не хочу на каком-нибудь лифлете или опенлеерс низкоуровневую хуйню городить.
Аноним 16/04/21 Птн 13:42:50 1997955207
Аноним 16/04/21 Птн 13:47:47 1997964208
Аноним 16/04/21 Птн 14:16:40 1997999209
>>1993705 (OP)
Как игнорировать собственное превосходство над другими кодерками и нормально работать? Вот не могу бля нормально продолжать кодить на жс, пока осознаю что нахожусь много выше всякого быдла на жаве, питонах, шарпе и прочем говне. Всякий раз как юзаю стрелочную функцию, ахуеваю от удобства и продвинутости жс по сравнению со всякими быдлоподелками
Аноним 16/04/21 Птн 14:20:05 1998003210
Я, видимо, чего-то не понимаю. Пытаюсь освоить 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 1998005211
Dirty-Tony-Ryan[...].jpg 184Кб, 1626x1080
1626x1080
Аноним 16/04/21 Птн 16:12:02 1998125212
Есть у кого решение проблемы для nodejs+express? Я должен пост обработать с кодировкой win-1251, мне его присылают, мой сервер сразу выбрасывает ошибку UnsupportedMediaTypeError: unsupported charset "WINDOWS-1251". То есть он ничего не успевает сделать. Как обработать пост с такой кодировкой на express?
Аноним 16/04/21 Птн 16:17:16 1998132213
Аноним 16/04/21 Птн 16:27:29 1998150214
Есть приложуха на рякте. Надо её натянуть на электрон прикрутив несколько фич с последнего. Посоветуйте статей каких-нибудь как это лучше всего и безболезненно сделать.
Аноним 16/04/21 Птн 16:58:00 1998175215
Только что узнал что в MongoDB нет автоинкремента (лол). Я уверен что над Монго работали не белые люди.
Аноним 16/04/21 Птн 17:56:56 1998227216
Сап, помогите начинающему плз.

Есть две функции, которые делают то же самое - таймер обратного отсчета. Первая универсальная, у нее есть аргументы 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 1998231217
Аноним 16/04/21 Птн 18:02:09 1998237218
>>1998175
Инкрементные идентификаторы - плохая идея. Чтобы нельзя было проитерировать всех твоих клиентов используется UUUID
Аноним 16/04/21 Птн 18:24:12 1998263219
Ну сделал я эту вашу тудушку спустя час чтения за реахт. Дальше то что?
Аноним 16/04/21 Птн 18:24:58 1998265220
>>1998263
Вставай на колени и открывай рот
Аноним 16/04/21 Птн 18:26:25 1998268221
Аноним 16/04/21 Птн 19:08:59 1998330222
>>1998237
Ебать ты долбоеб братишка. Хуже дебила, который для идентификации данных лепит где попало uuid вместо автоинкремента, может быть только червь-пидор. Особенно приятно работать в админке с таким дерьмищем, когда ты не можешь посмотреть заказ 123, тебе нужно смотреть заказ 22af49d4-8e7e-4666-8bd6-d6e0f6b41ed6 и хочется ебало набить разработчику.

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

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

Es lint колбасит или шо? Не моху понять нихуя че он ругается!
Аноним 16/04/21 Птн 20:48:50 1998427225
image.png 424Кб, 772x567
772x567
>>1998332
Хорошо что ты спросил
Аноним 16/04/21 Птн 20:50:17 1998430226
>>1998413
Так наведи на ошибку свой указатель то, там в тултипе обычно пишут кто из плагинов недоволен
Аноним 16/04/21 Птн 20:53:09 1998432227
image 4Кб, 66x94
66x94
>>1998430
Как таковой ошибки нет, просто плагин ругается как буд-то скобки не закрыты, и выдает одну красную в конце.
Я удалил часть этой шаблонной строки - все заебись, вставляюю ее обратно опять разметка в коде едет, хз че за баг, но я почитал на мдн, с шаблонной строкой все праввильно делаю, походу vs code тупит. Я даж переписал строку заного, нихуя не поменялось. ДУмал мож пробел какой закрался.
Аноним 16/04/21 Птн 20:56:36 1998437228
>>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 1998438229
>>1998432
А, ну так это bracket colorizer значит с ума сходит
Ну ты все равно такие строки то не пиши, нечитабельно же, это код, а не фильм Нолана
Аноним 16/04/21 Птн 21:01:27 1998441230
Аноним 16/04/21 Птн 21:05:30 1998449231
>>1998437
По ссылкам не ходил, но прост попробуй на лифлете, там можно поменять геокарту на твою кастомную карту, и есть плагины для рисования полигончиков почти без багов.
Ну и нет ничего проблемного в перерисовке 60к/с, твою видеокарту именно для этого и делали
Аноним 16/04/21 Птн 21:23:06 1998465232
>>1998132
Вот типа того, да, вот этот пример особенно.
http://fabricjs.com/build-minimap
но canvas... У них, я так понял, не решена проблема с z-index, а перерисовывать заново при каждом изменении - ну хуй его знает... Особенно, когда надо поверх пихать плашки всякие всплывающие, тексты и т. д.
>>1998449
Да я хотел что-то окологотовое. Буду смотреть на фабрик.жс, наверное, выглядит охуенно.
Аноним 16/04/21 Птн 21:53:53 1998484233
Не по6имаю нахуя высрали хук с контекстом если есть редукс?
Зачем они плодят сущности?
Аноним 16/04/21 Птн 22:21:41 1998499234
Курсы на Hexlet по NodeJS хорошие для вката?
Аноним 16/04/21 Птн 23:57:40 1998580235
>>1998484
Изкаропки. Если у тебя не очень большое приложение и нету кучи сайдэффектов, то контекст вполне себе интересная штучка.
Аноним 16/04/21 Птн 23:58:19 1998582236
>>1998484
>Зачем они плодят сущности?
А вообще это суть фронтенда. Придумать для одной задачи хуеву тучу инструментов, которые со временем станут депрекейтед.
Аноним 17/04/21 Суб 00:21:36 1998596237
>>1998330
Нихуя тебя подорвало, свидетель инкрементных индикаторов.
Если жаба душит лишние символы юзать - возьми рандомный код на 5-7 латинских букв.
Аноним 17/04/21 Суб 00:29:42 1998607238
>>1998484
Потому что редух - ехал бойлерплейт через бойлерплейт.
Аноним 17/04/21 Суб 00:40:57 1998616239
>>1998332
Хуярить свой модуль, который в зависимости от поддержки indexedDB будет хранить состояние в редуксе/indexedDB/локалсторэдж, а компоненты будут только пропукивать объекты в специально выделенные функции, от результата вызова которых зависит состояние компонента.
Аноним 17/04/21 Суб 00:57:08 1998625240
>>1998227
Ты берешь примитивное значение из глобала и передаешь аргументом в функцию. Функция создает новую ссылку на свою переменную. Ты ее меняешь и она пропадает после выхода из контекста.

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

Либо ищи библу
Аноним 17/04/21 Суб 01:59:41 1998645241
Какие есть хорошие видеокурсы с торрента?
Аноним 17/04/21 Суб 02:42:03 1998656242
как аргументировать команду перейти на хуки с классов, кроме как что классы это устаревшее говно и ооп вообще для пидоров? есть ли более нормальные аргументы?
Аноним 17/04/21 Суб 02:46:00 1998658243
>>1998656
Никак, продолжайте гадать над значением this и ритуально биндить методы класса.
Аноним 17/04/21 Суб 02:46:10 1998659244
>>1998656
Код чище, меньше кода, лучше developer experience, работать с хуками проще и удобнее
Аноним 17/04/21 Суб 10:32:03 1998839245
Насколько вообще оправдано юзать стрелочные функции 24\7\365. Хуячить их везде, где нужно и где не нужно. Забыть нахуй что существует слово function и хуярить исключительно стрелочные?
Насколько сильно стрелочные функции влияют на производительность?
Аноним 17/04/21 Суб 11:21:29 1998864246
>>1998839
шиз, по необходиомости, везде не получится юзать, читай книжки в шапке
Аноним 17/04/21 Суб 11:52:13 1998874247
>>1998656
Классовые компоненты имеют свои преимущества. Например любые методы, которые ты объявляешь не будут пересоздаваться при каждом чихе. В функциональном компоненте это надо все оборачивать в useCallback. Нужно придумывать костыли, чтобы имитировать первый рендер и последующие. Если копнуть уже глубже, когда куча методов не было дипрекейтед, то там можно так гибко настроить, что сейчас будет полной головной болью.

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

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

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

>if(error===null)

?

>>1998977
Нахожу тз
Аноним 17/04/21 Суб 14:13:20 1999003258
>>1998993
Ебанашка, кто в 2021 юзает this в функциях, м?
недофреймворки, форсирующие недоооп, применяемые полутора анонами меня не интересуют
Аноним 17/04/21 Суб 14:18:14 1999011259
У меня в приложении кондишонал рендеринг, типо такого:
{условие ? компонент : затычка}
Есть проблема. При обновлении страницы на 1 наносекунду появляется затычка и тут же заменяется на компонент. Лично меня это раздражает, хотя я понимаю, что это потому что условие не выполняется мгновенно. Это можно как-нибудь пофиксить или просто хуй забить?
Аноним 17/04/21 Суб 14:42:41 1999036260
>>1999000
Для ошибок есть catch, для проверка запоса в then можешь использовать response && response чтобы андифайнд не принять
Аноним 17/04/21 Суб 14:43:51 1999039261
>>1999003
Ты че кретин? Ты вообще не вкуриваешь про что говоришь, просто съеби зеленый
Аноним 17/04/21 Суб 14:45:38 1999042262
>>1999011
Промис напиши, в then укажи прелоадер, then будет срабатывать только когда пройдет проверка натзагрузку, и прилоадер лишний раз не покажется
Аноним 17/04/21 Суб 14:55:19 1999054263
>>1999042
Еще можно в дид компонент маунт не вставлять прелоадер, а вставить его в компонент апдейт, то при первой загрузке страницы он тоже не будет показываться, вариаций много короче
Аноним 17/04/21 Суб 18:35:47 1999370264
>>1999011
Сделать так, чтобы условие выполнялось мгновенно. Не благодари.
Аноним 17/04/21 Суб 18:38:46 1999374265
Сап, сломал всю голову, но не могу понять как это сделать, если кто то подскажет в каком направлении двигаться буду очень благодарен.

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

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

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

Аноним 17/04/21 Суб 19:44:31 1999444266
>>1999374
Ну смотри, я вообще ни разу не математик, а реакт-формодрочер, поэтому мое решение скорей всего будет неоптимальным. Но допустим смотри, мы щелкаем на самой правой верхней двойке. Это будет грубо говоря по координатам 3,1 (3 по горизонтали, 1 по вертикали). Нужно проверять соседние координаты, соответствуют ли они кликаемому числу. То есть какие соседние элементы у 3,1? это 2,1 и 3,2. Думаю мысль понятна.
Аноним 17/04/21 Суб 19:47:08 1999449267
>>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 1999480268
>>1998656
Что за проект?
Размер кодовой базы?
Твой опыт разработки?
Кто ты по жизни в этой команде?
Аноним 17/04/21 Суб 20:19:47 1999488269
>>1999480
Да это очередной залетный зумерок. 2 месяца на проекте посидел, видосики на ютабе посмотрел и все - гуру нахуй, можно уже "тупым дедам" советовать что и как надо делать
Примечательно что предложить что-то такие клованы всегда рады, но реализовывать - это не к ним, пусть кто-нибудь другой пытается воплотить их великую мечту в реальность и переписать 5 десятков модулей под новый стиль
Аноним 17/04/21 Суб 20:53:37 1999539270
>>1998656
>классы это устаревшее говно и ооп вообще для пидоров
Отличные аргументы из категории "инфлюенсер так сказал"
Аноним 17/04/21 Суб 21:00:18 1999545271
>>1999539
Интересно как он будет пытаться привязать это к тому что весь ангуляр например априори построен на TS и на классах
Аноним 17/04/21 Суб 21:02:35 1999549272
Аноним 17/04/21 Суб 21:03:32 1999550273
Пиздец тут копрофилы на классы слетелись
Аноним 17/04/21 Суб 21:04:54 1999551274
>>1998885
Схуёв ли он должен импортировать файлы за пределами бандла?
Аноним 17/04/21 Суб 21:05:30 1999552275
>>1999549
Блохастый, ты понимаешь вообще каково это переписывать уже готовый проект под свои хотелки? Хоть делал когда-то такое сам, а?
Аноним 17/04/21 Суб 21:06:59 1999553276
>>1999011
{условие && компонент}
Не благодари.
Аноним 17/04/21 Суб 21:10:37 1999555277
>>1999552
Не переписывать а потихоньку внедрять хуки. То есть новый функционал делать полностью с хуками. Старый пусть на классах остается. В чем проблема?
Аноним 17/04/21 Суб 21:19:42 1999561278
>>1999555
Пердеды не смогут переварить `function` где либо в проекте.
Аноним 17/04/21 Суб 21:55:12 1999590279
>>1999561
пусть пишут на const Component = ({}) => {}

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

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

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

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

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

Аноним 18/04/21 Вск 00:50:23 1999743284
Аноним 18/04/21 Вск 00:51:41 1999745285
>>1999742
алсо как вы делаете инпуты ( пропсы компонента ) обязательными?
ну те чтобы если я в верстке пишу <search-form /> он бы мне не давал его отрендерить покуда я не пропишу <search-form lang='ru' /> например ?
Аноним 18/04/21 Вск 00:57:40 1999754286
>>1998987
ok,получилось,спасибо. ура
Теперь надо будет отсортировать и прикрутить к веб формам.
Аноним 18/04/21 Вск 01:22:40 1999773287
>>1999742
>чето типа реактового контекста
инжектор
>как вы делаете инпуты ( пропсы компонента ) обязательными
никак
Аноним 18/04/21 Вск 03:21:32 1999816288
Аноним 18/04/21 Вск 09:04:31 1999921289
>>1999742
Я делал через environment. Правда только с сервисами, но думаю так же можно и компоненты.
Аноним 18/04/21 Вск 11:37:36 2000068290
анчоусы, реквестирую помощь. сейчас делаю тз и там один из пунктов написать свой дейтпикер. то есть полностью на ванилле. без либ, jquery и тп. подскажите алгоритм и как делать то такое вообще? уже много че в инете перекопал но там пиздец какой то. везде jquery ебучий, либо же какие то компонентики для фреймворков. отдельная благодарность если поделитесь линками на готовые/полуготовые вариант
Аноним 18/04/21 Вск 13:07:56 2000157291
>>2000068
получаешь даты в году (date-fns/moment.js) с разбивкой по месяцам неделям и дням

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

проблемы?
Аноним 18/04/21 Вск 13:57:28 2000189292
Аноним 18/04/21 Вск 14:02:24 2000194293
Как описать в тс такой тип:
something: any = {
"строка-ключ": {
"строка-ключ": [строка, еще строки...],
еще много таких пар строка-массив...
},
еще много таких объектов...
}
?
Аноним 18/04/21 Вск 14:07:48 2000198294
Аноним 18/04/21 Вск 14:14:46 2000207295
>>2000068
Делай мвс. Контролер принимает инпут (мышь, стрелки) и обновляет модель. Вьюха подписана на обновления модели. Модель простая, это текущая дата в милисекундах. Модель преобразуешь в массив чисел - дни текущей недели. этот массив посылаешь во вьюху при обновлении модели. Контроллер обновляет модель тривиально +-10006060247
Аноним 18/04/21 Вск 14:15:49 2000209296
Аноним 18/04/21 Вск 14:28:26 2000220297
>>2000198
Получается мне надо заранее знать все названия ключей? Хуево чо.
Аноним 18/04/21 Вск 14:31:32 2000221298
>>2000220
Нет, Record - это когда не знаешь названия ключей
Аноним 18/04/21 Вск 14:32:49 2000223299
>>2000220
Нет

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

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

Однако как дока тайпскрипта подросла.
Аноним 18/04/21 Вск 14:41:48 2000232301
Аноним 18/04/21 Вск 14:42:12 2000233302
Аноним 18/04/21 Вск 14:50:29 2000242303
>>2000233
Чел, ты конечно умный дохуя, саглы, но
>без либ
>всё на тайпскрипте
Аноним 18/04/21 Вск 14:51:28 2000244304
>>2000242
перепиши на ванилу, я пример накидал че ты хочешь и как это получить


Аноним 18/04/21 Вск 14:58:16 2000255305
>>2000232
>class implements
>static static static
>ts-ignore
Заебись
Аноним 18/04/21 Вск 14:59:16 2000258306
>>2000232
> LEAP_YEAR_DAYS_COUNT = 364
Лол
Аноним 18/04/21 Вск 14:59:36 2000261307
image.png 14Кб, 468x102
468x102
>>2000232
У всех тс-макак в високосном году дней меньшем, чем в обычном?
Аноним 18/04/21 Вск 15:05:44 2000280308
>>2000255
в чем проблема со статическими методами?
>ts-ignore
этого не будет если закончить реализацию
> class implements
а тут ты чего порвался?
Аноним 18/04/21 Вск 15:19:45 2000300309
image.png 5Кб, 523x104
523x104
image.png 42Кб, 150x200
150x200
>>2000232
>бля пишешь ТЗ описываешь интерфейсы и желательно тесты объясняешь разрабу чего от него хочешь
>ждешь
>ждешь
>??
>profit
Мда, вот и дождались
И запомните дети, никогда не пишите календари сами
Аноним 18/04/21 Вск 15:24:45 2000306310
Capture2.JPG 98Кб, 1366x768
1366x768
>>2000300
>2 пик
Ебать зачем так сложно ЭТО ЖЕ ПИЗДЕЦ
Аноним 18/04/21 Вск 15:33:56 2000314311
image.png 697Кб, 722x388
722x388
>>2000306
Потому что кручение и верчение этой вашей плонети немношк не совпадает )))
Аноним 18/04/21 Вск 15:35:29 2000317312
>>2000300
https://pastebin.com/wqhf9DJr

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

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

Аноним 18/04/21 Вск 15:37:13 2000318313
>>2000317
> наследуешься от Calendar
всм декоратор пилишь
Вкатышь Золотце 18/04/21 Вск 15:50:27 2000338314
изображение.png 809Кб, 1366x735
1366x735
изображение.png 205Кб, 710x679
710x679
изображение.png 1408Кб, 1366x735
1366x735
Ребят, я правильно понимаю, что на рынке есть недобор специалистов, а вкатышей перебор и они никому не нужны?

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

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

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

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

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

тут ты прав, надо адаптер делать
Аноним 18/04/21 Вск 16:30:29 2000399321
так, всем спасибо хотя вы отвечали не мне лол. варик с ТС попозже гляну. ебал я эту хуйню своими руками писать пиздец. хорошо что только для тестового такое надо.
>>2000068 - кун
Аноним 18/04/21 Вск 16:41:15 2000408322
>>2000388
а как сделать DI на наследовании?
Аноним 18/04/21 Вск 16:43:42 2000415323
>>2000408
Взял и без задней мысли сделал
Аноним 18/04/21 Вск 16:49:08 2000421324
image.png 5Кб, 604x64
604x64
AsyncErrorHandler
Че эт за хуйня и как она работает? Асинхронный обработчик ошибок.
Это catch там что-то ловит?
Что-то какая-то мутная мудреная хрень
Аноним 18/04/21 Вск 16:52:07 2000426325
>>2000421
Принимает асинхронную функцию fn (которая внезапно возвращает промис), этот промис хуячится на catch
Аноним 18/04/21 Вск 16:57:02 2000429326
image.png 21Кб, 528x263
528x263
>>2000408
DI это ладно, но зачем оборачивать декоратором объект Request в контроллерах? Можно же просто передават ьв коллбек 1й параметр - Request, это весьма очевидный контракт, нахрена какие-то декораторы мутить?
Аноним 18/04/21 Вск 16:58:55 2000432327
>>2000426
А зачем эта вложенность функции в функцию? Что возвращает (fn) => (...args) ?
И почему catch берет именно третий аргумент args[2]?
Аноним 18/04/21 Вск 17:17:16 2000460328
let sorted = {};
let objects = [{key:value},{key:value}];
for (let object of objects) {
sorted[object.key] = object;
}

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

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

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

Это из-за возраста, а не из-за избытка.
Аноним 18/04/21 Вск 18:01:23 2000524333
изображение.png 809Кб, 1366x735
1366x735
>>2000521
>30 лет, 2 года вкатываюсь, никто не берет.
Аноним 18/04/21 Вск 18:10:45 2000533334
>>2000521
ПРОСТО ВКАТИСЬ
Я в 27 вкатился на вижуал бэйсик, программировал в экселе. Зато БД подтянул
Потом было уже проще перекатиться в веб. Вот я уже 3 года там, до сих пор нихуя не умею, зато платят нормальные бабки.
И ты так делай
Аноним 18/04/21 Вск 18:11:07 2000534335
>>2000338
Бля, то читаю стори что "вкатываюсь-вкатываюсь никак не могу вкатиться, все скипают, тогов работать за еду" то "вкатился изи на 70к, через 3месяца апнулся до 120к, еще через 3 получил оффер в дргую компанию и стал получать 200к"
Где тру?
Аноним 18/04/21 Вск 18:12:11 2000535336
>>2000534
Все правда. Но все зависит от человечка
Аноним 18/04/21 Вск 18:17:40 2000542337
>>2000534
>"вкатился изи на 70к, через 3месяца апнулся до 120к, еще через 3 получил оффер в дргую компанию и стал получать 200к"
Ха, возможно это был я.
Аноним 18/04/21 Вск 18:38:10 2000575338
>>2000534
>>2000338

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

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

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

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

const vocabulary = R.mergeAll(organs);

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

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

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


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

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

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

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

Аноним 18/04/21 Вск 22:33:14 2000801352
>>2000758
Много вёрстки требуют вкатуну? Вообще часто приходится верстать?>
Аноним 18/04/21 Вск 22:41:00 2000810353
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 2000814354
image.png 1Кб, 415x66
415x66
Аноним 18/04/21 Вск 22:49:19 2000819355
>>2000814
Так всегда происходит?
Аноним 18/04/21 Вск 22:59:43 2000830356
Какой сейчас положняк по ORM для ноды? Использовать полноценную ORM, query builder, или писать чистый SQL?
Аноним 18/04/21 Вск 23:03:13 2000831357
>>2000801
Практически не спрашивают если это именно фронт. Могут как стилизовали код на прошлых проектах? modules или styled components? Подразумевается что вкатыш умеет верстать.
Аноним 18/04/21 Вск 23:04:21 2000832358
>>2000819
функция должна что-то возвращать,
в объявлении метода carHorn() после логирования напиши return 'anus' и посмотри что будет
Аноним 18/04/21 Вск 23:04:37 2000833359
>>2000810
первый консол лог вывод строку, второму ты говоришь покажи мне литерально web api - он закономерно посылает тебя нахуй, т.к. в js их нет

Аноним 18/04/21 Вск 23:05:19 2000834360
>>2000718
>>2000746
Ладно, в пизду, о чем я вообще блядь на дваче спрашиваю, сам ведь лучше знаю что мне сделать, прокрастинацией здесь занимаюсь
Аноним 18/04/21 Вск 23:19:02 2000842361
>>2000832
Попробовал сам, понял что обосрался. Действительно, почему консоль возвращает андефайнд?
Аноним 18/04/21 Вск 23:21:14 2000845362
Screenshot from[...].png 51Кб, 732x220
732x220
Аноним 18/04/21 Вск 23:23:36 2000847363
>>2000842
>>2000845
Короче ситуация такая. Консолька в девтулзе всегда выводит результат выражения даже если мы ее не просим. При вызову console.log ничего не возвращается и она выводит undefined.
Аноним 18/04/21 Вск 23:26:38 2000852364
image.png 4Кб, 353x234
353x234
>>2000842
>>2000847
Потому что функция возвращает undefined если явно return не указан
Вот консолька в питоне. undefined тут нет есть только None, но все то же самое
Аноним 18/04/21 Вск 23:27:26 2000856365
>>2000852
Зумерки совсем обленились
Аноним 18/04/21 Вск 23:31:45 2000860366
>>2000830
Если easy peasy запросы будут то орм, если нет то query builder
Аноним 18/04/21 Вск 23:46:32 2000864367
>>2000432
декоратор ёпта
ее вкурил што ли ёпта?
функцию он принимает значит
и функцию возвращает
декорированную нах
понимаешь?
эта функция че-то там с args делает нах
че-то блять вытаскивает выдрачивает
2й индекс трогает ёпта
то есть 3й элемент рот его ебать
почему так?
а я ебу
контракт у него такой нах
на ус мотай
папку слушай
и збс будет
Аноним 19/04/21 Пнд 01:47:06 2000896368
>>2000679
на ноде попиши дебс
Аноним 19/04/21 Пнд 05:08:26 2000938369
>>2000842
Потому что ты не умеешь программировать.
Аноним 19/04/21 Пнд 10:09:55 2001013370
Стикер 255Кб, 512x512
512x512
Кто-нибудь из здесь присутствующих занимался написанием собственных декораторов для классов? В каких-ситуациях для вас это была полезная практика?
Аноним 19/04/21 Пнд 12:40:32 2001202371
Screenshot5.png 80Кб, 1056x1025
1056x1025
Левиафан Я ниче[...].mp4 535Кб, 1280x720, 00:00:03
1280x720
Почему не передаётся ошибка из catch во внешние обработчики.
Функция асинхронная, но throw должен же передать ошибку во внешний обработчик ошибок?

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

>вернуть полезный промис ты забыл
А что если мне не нужно этот промис возвращать. Мне никак это ошибку не отловить вне функции?
Аноним 19/04/21 Пнд 13:56:01 2001299374
Стикер 191Кб, 512x512
512x512
>>2001295
Привет. Я левый пчел. Почему ты не обернешь в try catch промис page.goto ? И ещё. Напиши не throw, а throw new Error(e)
Аноним 19/04/21 Пнд 13:56:41 2001301375
Аноним 19/04/21 Пнд 14:11:02 2001322376
Пацаны в чем разница запросов разных? Я вот использую фетч, хватает для всего. Есть еще какой то ajax, когда его надо использовать? Какие еще запросы есть? Можно ли везде фетчем пользоваться в замен остальных?
Аноним 19/04/21 Пнд 14:13:45 2001329377
>>2001322
fetch юзаешь если член больше 19 см
ajax если меньше
Аноним 19/04/21 Пнд 14:17:48 2001336378
Стикер 191Кб, 512x512
512x512
>>2001322
Все запросы - это промисы. Каждый вид запроса обладает своим удобным сахаром. Запрос строится на xmlhttprequest. Твой фетч - это обертка над xmlhttprequest. Ajax это вообще технология обращения к серверу без релоада страницы. Но то, про что ты говоришь ты скорее всего имеешь ввиду ajax в jquery.

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

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

>>2001301
Спасибо. Выглядит весьма костыльно. Отлавливать ошибки через события это вообще законно?
Аноним 19/04/21 Пнд 14:29:37 2001351380
customfetch.png 39Кб, 1029x233
1029x233
>>2001322
>хватает для всего
А так сможет?
Аноним 19/04/21 Пнд 14:42:52 2001358381
>>2001336Спасибо добрый анон, желаю тебе хорошего доя!
Аноним 19/04/21 Пнд 14:47:22 2001362382
>>2001343
>костыльно
Какие требования такие и решения
Это даже и не catch, обработать ошибку ты не сможешь, только пологгировать
Аноним 19/04/21 Пнд 16:05:43 2001486383
232525049-15473[...].png 2Кб, 400x400
400x400
>>2001362
>Какие требования такие и решения
Не думал, что это что-то необычное - отловить асинхронную ошибку.
Типа единственные правильный вариант это вовзращать промис в функции? А если промисов несколько, то все чтоль возвращать?
Аноним 19/04/21 Пнд 16:35:25 2001552384
>>2001486
Но ты же ее из пизды хочешь отловить. Да, возвращать. Собрать все в один и возвращать
Аноним 19/04/21 Пнд 17:35:47 2001654385
Аноним 19/04/21 Пнд 17:51:41 2001671386
Аноним 19/04/21 Пнд 18:13:22 2001681387
Аноним 19/04/21 Пнд 20:27:22 2001774388
Так блят. Прочитал я доку по рякту, заделал свою тудушку и ещё один проект. Но чего я не понял так это как делать бляцкие SPA. Ну в смысле идея у меня есть, но она 100% сложна и не верная. Что я упустил?
Аноним 19/04/21 Пнд 20:46:00 2001789389
Есть некий get-запрос с query-параметрами, при переходе по нему у клиента открывается новое окно и происходят всякие шняги

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

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

Любой запрос всегда можно сделать с помощью curl
Аноним 19/04/21 Пнд 21:26:08 2001815392
>>2001774
spa - это просто js файл, который отрисовывает тебе UI и делает запросы по api по мере необходимости.
Аноним 20/04/21 Втр 02:54:58 2001940393
Аноним 20/04/21 Втр 12:19:45 2002200394
c839f9b11bead99[...].jpg 29Кб, 500x375
500x375
Аноны меня возьмут в ЕлектроникСпротс с таким?
Буду им физ. движки писать С КОЛЛИЗИЕЙ хуевой!!
https://codepen.io/EXDude/pen/wvgYzMx
Аноним 20/04/21 Втр 12:22:35 2002201395
c839f9b11bead99[...].jpg 29Кб, 500x375
500x375
Аноним 20/04/21 Втр 12:36:30 2002219396
Antd
Аноним 20/04/21 Втр 13:10:41 2002260397
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 2002264398
>>2002260
Там ~800 спаршенных постов из вк, если что.
Аноним 20/04/21 Втр 13:14:21 2002268399
>>2002260
>хули массив в консоли видно, а в браузере пустой?
А тебя ебет?
Аноним 20/04/21 Втр 13:28:23 2002310400
ТСач, поясни, с какого хуя стало возможным присваивать функцию с unknown аргументом в переменную, ожидающую функцию с аргументом конкретного типа? Официальную доку читал, там этот момент как-то стороной обошли.

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

a = b;

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

Аноним 20/04/21 Втр 13:29:22 2002316401
>>2002260
Потому-что анонмную лямбду с циклом браузер не поймет, так что пиши console.log(tyDown)
Аноним 20/04/21 Втр 13:30:26 2002319402
>>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 2002399403
>>1997999
чем стрелочные функции удобные то такие? по-моему обджекшены даже читаются лучше
Аноним 20/04/21 Втр 14:47:57 2002408404
>>2002319
А как в браузер распечатать?
Аноним 20/04/21 Втр 14:49:44 2002411405
>>2002408
>[1, 2, 3, 4, 5].forEach(x => console.log(x))
Аноним 20/04/21 Втр 14:57:26 2002420406
>>1993705 (OP)
1. Как в реакте сбросить инпут файла? Чтобы имя отправленного файла обнулялось? Чет ничего не смог нагуглить. Пока все что придумал - закрывать форму и открывать опять.
2. Кто-нибудь работал с апи от дак дак го? Интересует их поиск. Знаю, что гугл позволяет такое делать, но за бабки.
У них есть вот такая хуйня:
>An API for some of our Instant Answers, not for full search results.
То есть это значит, что они не дают доступа к поиску как гугл? Понятно что все еще можно просто посылать результат ввода из формы на дакдакго.ком, но хочется в пете выебнуться и посылать полноценные запросы по апи.
Аноним 20/04/21 Втр 15:33:26 2002477407
Аноним 20/04/21 Втр 15:36:53 2002483408
фронтенд говно
жс параша
я горю
твоя мамаша
шлюха
Аноним 20/04/21 Втр 15:45:27 2002501409
Аноним 20/04/21 Втр 16:29:50 2002552410
Аноним 20/04/21 Втр 16:58:01 2002570411
>>2002310
>a = b;
>сам стреляет себе в ногу
>нет ошибки
Действительно.
Аноним 20/04/21 Втр 17:14:14 2002584412
Шалом анон.
Есть один флекс контейнер фиксированного размера - строка
В нем два дива фиксированного размера - столбцы
Задача: сделать так, чтобы при приближении, если столбец не влезает в экран, он переносился вниз. То есть это происходит динамически.
Свойство flex-wrap: wrap не работает так как надо.
Аноним 20/04/21 Втр 17:18:24 2002589413
Аноним 20/04/21 Втр 17:24:47 2002598414
>>2002570
> сам стреляет себе в ногу
Билять, это же просто пример. Этот код не использую, просто для наглядности механизма показал.
Аноним 20/04/21 Втр 17:30:40 2002603415
>>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 2002604416
Аноним 20/04/21 Втр 17:37:42 2002610417
>>2002477
А, всё, понял, там бивариантность работает. Спасибо!
Аноним 20/04/21 Втр 18:20:56 2002643418
>>2001202
Зачем ты используешь одновременно и .catch(e) на промисе, и try {await ... } catch (error) {}?

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

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

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

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

вы перетаскиваете классы с бизнес логикой и они без проблем заводятся в отрыве от всего
Аноним 20/04/21 Втр 20:27:25 2002796423
Обьясните пожалуйста это "[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 2002797424
>>2002796
блять, там в конце перед [y] ещё стоит [и]. ебаная разметка
Аноним 20/04/21 Втр 20:30:40 2002803425
Какие же уёбищные в ангуляре формы всё-таки. Всё хорошо, пока тебе не понадобится маааленькая фича, которая за гранью фантазии разработчиков фреймворка: тут то ты понимаешь, что всё здесь намертво прибито гвоздями. Приходится расковыривать все кишки этих ёбаных форм, чтобы добавить тот или этот функционал, я заебался уже портянку писать. Зато в примерах всё красивенько.
Аноним 20/04/21 Втр 20:33:39 2002810426
>>2002796
добавь после россии украину и твой код перестанет работать лол
Аноним 20/04/21 Втр 20:55:11 2002831427
>>2002803
>маааленькая фича
Какая например? Мне для сравнения интересно.
Аноним 20/04/21 Втр 21:12:17 2002848428
>>2002831
Окей. Понадобилось поле ввода только положительных целых чисел.
1) стандартный input type=number просто смешон, забудем про него.
2) ммм, pattern? Нет, он всего лишь делает поле невалидным. Нам надо тупому юзеру наглядно показать, что нельзя вводить ничего кроме цифр, а не просто плашечку "неверное поле, имши!".
3) окей, что у нас дальше? Регулярочки всегда выручали нас. Можно разбить ящик с бананами [(ngModel)]. Но (ngModelChange) не обновляет видимый результат после преобразования регекспом, ведь всё невалидное превратится в 0 или пустую строку, а ебучая форма у мамы умная и не желает обновить поле, ведь типа "изменений нет!". Зафорсить её на это изменение тоже нельзя, ведь она лучше знает как правильнее.
4) Штош...гуманных способов больше нет, вызываем control.setValue(filteredValue); и ещё до кучи
control.updateValueAndValidity(); чтобы ебальник ей закрыть о боже! О невалидности блять, да мы только что сделали сетвэлью, почему нахуй?!!!!
Аноним 20/04/21 Втр 21:17:32 2002851429
>>2002831
Вот ещё прикол: нельзя просто взять и присвоить полям формы свойства модели.
>Type 'string' is not assignable to type 'number'.
Ах ну да, у нас же для поля типа текст тип стринг, сделай нумбер и не будет ошибки. Да идите нахуй с этим говном.
Аноним 20/04/21 Втр 21:19:08 2002852430
>>2002796
for (let y = 0; y < listOfNeighbours.length; y++) {
console.log(`Neighbour: ${listOfNeighbours[y]}`);

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

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

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

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

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

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

Загрузить ещё
или нумерация страниц
Аноним 20/04/21 Втр 23:23:22 2002972455
>>2002965
А может лучше СКРОЛЛ БЕСКОНЕЧНОСТИ?
Аноним 20/04/21 Втр 23:30:05 2002977456
>>2002972
можно, но говорят что бед практикс его юзать
Аноним 20/04/21 Втр 23:39:38 2002984457
>>2002977
Твиттер, пейсбук и ютубокаменты получается бэд практис?
Аноним 20/04/21 Втр 23:42:37 2002985458
Аноним 20/04/21 Втр 23:48:28 2002990459
>>2002985
Советы какого-то хуя с горы vs. практический опыт многомиллиардных мегакорпораций. Кого же стоит слушать???
Аноним 20/04/21 Втр 23:50:38 2002993460
>>2002990
прочитай статью хотяб
Аноним 20/04/21 Втр 23:56:43 2002998461
>>2002993
Так пейсбук это бэд практис или нет?
Аноним 21/04/21 Срд 00:05:36 2003007462
>>2002998
Там про то, что бесконечный скрол хорош на сайте с лентой типа фейсбука, но плох в других случаях (например выдача поисковика или СУКА ДВАЧ ТРЕД НЕ НАЙДЕН)
Аноним 21/04/21 Срд 00:08:26 2003012463
>>2002998
А вообще, хуже фейсбука и его высеров нет в интернете.
Аноним 21/04/21 Срд 00:21:38 2003025464
LogRocket Blog.png 15Кб, 801x135
801x135
>>2003007
>Там про то, что бесконечный скрол хорош на сайте с лентой типа фейсбука
Конкретно в случае пейсбуко-твиттера данные не сортируются по дате.
Аноним 21/04/21 Срд 00:45:45 2003040465
image.png 11Кб, 421x160
421x160
image.png 27Кб, 455x493
455x493
Какое же говно блядь.
Аноним 21/04/21 Срд 02:22:40 2003056466
>>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 2003065467
>>2003040
>не писать на ангуляре в 2021
Вдриську с маньки
Аноним 21/04/21 Срд 05:51:21 2003096468
>>2002944
Пиздец. Вроде я синтаксис выучил, а задачу эту сделать не могу.
Аноним 21/04/21 Срд 09:48:34 2003211469
Кто как использует деструктуризацию?
Аноним 21/04/21 Срд 09:56:07 2003216470
Стикер 255Кб, 512x512
512x512
>>2003211
А шо там использовать. Деструктурируешь и все.
Аноним 21/04/21 Срд 09:59:48 2003220471
>>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 2003232472
>>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 2003236473
>>2003232
Ааааа блять, эта хуйня асинхронная, пиздец я затупок.
Аноним 21/04/21 Срд 10:34:36 2003247474
>>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 2003288475
>>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 2003296476
>>2003288
Хуй знает, пользуйся первым.
Аноним 21/04/21 Срд 11:55:38 2003301477
>>2003296
Ок. А почему-тогда он у меня аж целых 4 раза возвращает значение широты, если я пытаюсь вывести его в консоль?
const { latitude, longitude } = (await getCoords()).coords
console.log(latitude);
Он логирует одно и то же 4 раза подряд. Для интереса попытался сделать запрос к серверу, он отправил 4 запроса. Это полная хуйня. Это связано с тем что компонент лишние разы ререндерится (с чего бы это?) или что-то с промисами не так?
Аноним 21/04/21 Срд 12:09:11 2003311478
Capture.PNG 25Кб, 580x389
580x389
>>2003301
Хз, у меня вон вообще кал выводит.
Аноним 21/04/21 Срд 12:34:18 2003341479
Аноним 21/04/21 Срд 12:37:28 2003346480
У меня в Интернет магазине, данные о купленных товарах содержатся в Local Storage, кроме того есть система авторизации на куки (имя пользователя содержится в куки). Я бы хотел связать эти два элемента, чтобы у определённого пользователя был свой набор купленных товаров (сейчас товары не связаны с пользователем). Есть советы как этого достичь?
Аноним 21/04/21 Срд 12:41:02 2003351481
>>2003346
БД используй, дурачок. Локал сторадж не для базы данных магазинов.
Аноним 21/04/21 Срд 12:56:11 2003377482
>>1993705 (OP)
Есть длинная форма (ангуляр), как в случае ее неудачной валидации перемещать экран посетителя к ближайшему месту где есть ошибка? А то не сразу ясно, че не так
Аноним 21/04/21 Срд 13:03:56 2003391483
Как для функционального компонента определить обязательные пропсы?
Аноним 21/04/21 Срд 13:04:25 2003392484
image.png 383Кб, 693x520
693x520
>>2003346
Пиздец. И вот это будущее веба
Аноним 21/04/21 Срд 13:10:48 2003396485
>>2003377
Есть scrollTo(x, y), однако он скроллит так что эти координаты x, y оказываются в левом верхнем углу экрана а не как-то иначе. Надо чтобы в центре оказался элемент, где ошибка
Можно получить координаты элемента, ок, но че дальше-то? Как понять сколько отнять от этих координат чтобы получить правильный scrollTo? Размер экрана у всех разный
Аноним 21/04/21 Срд 13:24:01 2003405486
Аноним 21/04/21 Срд 13:51:30 2003413487
Аноним 21/04/21 Срд 15:15:07 2003472488
Посоветуйте либу для логирования
Аноним 21/04/21 Срд 15:46:23 2003497489
Пацаны, а зачем во время выполнения реквестов мы дважды делаем 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 2003511490
>>2003497
Во-первых так функция сделана. Во-вторых на случай, если ответ ЖЫРНЫЙ, штоб процесс случайно не положить.
Аноним 21/04/21 Срд 16:24:38 2003548491
>>1993705 (OP)
NaN !== NaN в хату, аноны. Такой вопрос, заказчик-пидор, ставит задачу очень расплывчато, потом когда сделано уже много, начинаются песни про "а вот тут вот можно вот так вот, а вот тут изменить, а тут не очень". В итоге приходится переделывать. Собственно, куда читать, где смотреть, по постановке требований к ПО? Может тут есть лиды или ПМ, которые много общаются с мычащими уродами, не знающими чего они хотят? Что помогает вам четко формализовать требования?
Аноним 21/04/21 Срд 16:38:32 2003571492
>>2003548
Так а сроки то есть? И если есть то меняются ли после новых невнятных мычаний?
Аноним 21/04/21 Срд 16:56:30 2003590493
>>2003571
Сроки наша контора сама ставит. Как правило часто выходим за сроки на сверках, но заказчик это понимает и не давит особо. Сейчас вот с короной вообще пиздец, пол года только на удаленку настраивались, но пока идем по графику. Но хочется научиться сразу ставить такие вопросы людям, чтоб они озвучивали, что конкретно им надо. Мне просто по человечески заебывает делать двойную работу и возвращаться к тому, что я уже сделал и забыл. Как то так, если что присоветуешь, буду очень благодарен.
Аноним 21/04/21 Срд 17:07:36 2003603494
>>2003590
Некоторые люди не знают что им надо пока им не покажешь, можете до разработки макетики рисовать@согласовывать, если переделки по внешнему виду, если по интеграциям - доки с описанием и диаграмками взаимодействий, но это все равно не 100% вариант, лел.
Ну а если вам платят за переделки, то тебя это вообще ебать не должно, добро пожаловать
Аноним 21/04/21 Срд 17:13:56 2003606495
>>2003603
Ох, ебать, понятно, ладно, спасибо. Просто в конторе до этого аналитики в задачах аж прописывали количество символов в полях, а тут пиздос анархия.
Аноним 21/04/21 Срд 17:33:52 2003632496
>>1993705 (OP)
Что можно использовать в качестве "затычки" для тернарного оператора после двоеточия? Например у меня есть условный оператор, но нет else. Тернарный оператор требует выражение после двоеточия.
Аноним 21/04/21 Срд 17:55:51 2003650497
Аноним 21/04/21 Срд 17:57:28 2003653498
>>2003632
Если тебе не нужен тернарник, не используй тернарник. Напиши просто

if (cond) {
do_x
}
Аноним 21/04/21 Срд 18:02:15 2003662499
Помогите люди добрые. Впервые юзаю вебпак и 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 2003702500
>>2003662
У меня все то же самое. Это особенности работы.
Аноним 21/04/21 Срд 18:42:14 2003704501
>>2003702
Печально если так. Что характерно если не использовать MiniCssExtractPlugin а просто билдить все в один свалка-файл все работает и обновляется в реальном времени.

Но хотелось немного больше порядка чтоб css был отдельным файлом
Аноним 21/04/21 Срд 18:48:34 2003715502
>>2003704
А зачем тебе в дев-моде минификация КСС?
Аноним 21/04/21 Срд 18:54:25 2003721503
Аноним 21/04/21 Срд 18:55:06 2003723504
image 108Кб, 1142x734
1142x734
Тестирую роутер в одной аппе, и короч такая хуйня, в компненте Home делаю запрос fetch, он заместо обычного адреса, в начале припихивает ему localhost:3000/www.api.com из-за чего запрос не срабатывает, я так понял это роутер че то шалит? Че может влиять на добавление этого локалхоста в начале, я так понял это какие то дефолтные настройки роутера
Аноним 21/04/21 Срд 19:00:09 2003726505
>>2003497
Томущо json(а можно и blob) надо распарсить.
Аноним 21/04/21 Срд 19:18:29 2003743506
image 60Кб, 1030x312
1030x312
>>2003723
Дело не в роутере, лол. Удалил его, все равно криво отправляется, сука не пойма че за баг. В соседней аппе все ок работает, а тут залупа с адресом какая-то
Аноним 21/04/21 Срд 19:34:14 2003763507
2021-04-21 19-2[...].mp4 5329Кб, 1920x1080, 00:00:43
1920x1080
Sup сделал аналог двача(на минималках)
так же делал аналог аск.фм, он более доработанный чем имиджборда.
Подскажите какой это уровень? Стек PERN + MobX
Можно ли устроиться с этим куда нибудь?
Подобные сервисы занимает сделать 1-3 дня с бесконечными перерывами поесть, позалипать вк, поссать, съездить в качалку и тд.
Аноним 21/04/21 Срд 19:35:33 2003766508
image.png 2Кб, 303x62
303x62
>>2003723
Твой сервер на локалхосте, но ты пытаешься с него фетчить другой сайт, не прописывая схему, в итоге фетч это распознает как локальный путь. Пиши fetch("http://themealdb.com/api/...") и ебись с отключением CORS в браузере
Аноним 21/04/21 Срд 19:39:47 2003772509
image 60Кб, 1256x272
1256x272
>>2003766
Я так и пишу, и все равно какая-то залупа. Лол. Мож апишка какая-то кривая. Буду копаться щас. Вообще с апи уже много работал, до этого штук 5 апи перепробовал все ок было, это первая которая вот чудит чет
Аноним 21/04/21 Срд 19:41:35 2003773510
>>2003772
Не пишешь. Схема - это http или https, в твоем запросе ее нет.
Аноним 21/04/21 Срд 19:42:27 2003776511
>>2003773
Понял ща попробую, спс
Аноним 21/04/21 Срд 19:44:25 2003779512
image 25Кб, 916x148
916x148
>>2003773
Век живи век учись, спасибо анончик.

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

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

выбрасывают эксепшены, меняют логику, делают еще что-то
в одну строчку обработку null ты не опишешь если это не hello world
Аноним 21/04/21 Срд 21:56:57 2003854518
>>2003817
Но ведь тебе не нужно if-else, дурачина, тебе нужен просто if. Можешь в одну строчку его написать, так и быть: if (true) sosatHui()
Аноним 21/04/21 Срд 22:13:32 2003870519
>>2003377
Ничего не надо перемещать, а сделать оверлэй с ошибками, и каждая из них - ссылка на поле.
Аноним 21/04/21 Срд 22:14:29 2003871520
>>2003497
Да промиса резолвишь ты хотел сказать?
Катимся Аноним 21/04/21 Срд 22:28:34 2003897521
Аноним 27/04/21 Втр 13:45:54 2010097522
Codepen
Настройки X
Ответить в тред X
15000
Макс объем: 40Mб, макс кол-во файлов: 4
Кликни/брось файл/ctrl-v
Стикеры X
Избранное / Топ тредов