да там в принципе уже написано то, что я хотел, дальше уже вопрос техники, раскидать данные куда-нибудь. Это задачка из головы, которую я взял для отработки async/await У меня основной вопрос - насколько адекватное решение определять вне функции массив(usersData), чтобы я мог потом данные из него отрисовывать в другой функции, не делая одну большую и насколько правильно объявлять массив(renderedUsersData) для фильтрации внутри функции, которая запрашивает данные. (странно, конечно, я сделал массив вне функции, но отфильтрованный оставил в функции, как тут правильно сделать?🤯)
а зачем вам плодить глобальные переменные тут? просто возвращайте результат из функции и дальше делайте с ним что хотите
это, я так понимаю, замыкание?
нет, я вам предлагаю использовать чистую функцию function myAwesomeBlaBla(attr) { const result = [] ... return result }
https://codesandbox.io/s/fancy-another-thing-v8236
Я думаю, что на данном этапе нужно для себя понять, как можно написать функции так, что бы не мутировать исходные данные. Глобальное состояние - всегда зло. В идеальном случае - функции чистые, и возвращают новые копии не модифицируя старые. При этом обращаю внимание на то, что функция должна делать что-то одно. Она может хранить в себе несколько разных операций, но они должны являться частью действия.
спасибо, очень полезно, это именно то что мне нужно было
К примеру: Если функция загружает список пользователей и отфильтровывает его по вводу, то это плохо. Илья в одном из видео рассказывал об уточке!!
SOLID, GRASP и так дальше :)
да, я помню про это, поэтому и пришёл с таким вопросом, но было непонятно как это разделить. В голове, абстрагируясь от кода, понятно, а в коде нет. С примером стало понятно
Вам будет интересно потренироваться на таких задачах, где у вас как раз таки приходят данные и с ними нужно что-то сделать перед тем, как их показать пользователю.
40 минут возился, не понимая почему на меня ругается ваш вариант исполнения и почему возвращается промис, оказалось что надо поставить await😄 Это точно было полезно)
IDE - Ваш друг. наводите на функцию, смотрите возвращаемый тип и будет попроще :) async - это синтаксический сахар, который оборачивает функцию в Promise и позволяет внутри использовать await. Вы это уже читали, скорее всего :)
ну то что возвращается промис было и так понятно, не мог понять почему результат возвращается не массивом, а возвращается промис целиком, это вроде в ide не увидишь
да, читал, ещё раз спасибо
Там моя ошибка, я не указал await.
потому-что async всегда вернёт промис
Да это я забыл туда await поставить. 👉🏻👈🏻🥺
10 ударов плетью этому господину))
И принудительные курсы
Обсуждают сегодня