Deleted
Дмитрий
" (в идеале)"
вот только реальность обычно немного иная и далека от идеала) у нас тут костыли на костылях)
поэтому миром скорее правит прагматизм нежели идеализм) а к последнему мы больше стремимся по мере возможностей)
Deleted
Deleted
лучше не так
давай конкретный пример
Дмитрий
дак вон выше есть пример с машиной же
я хочу от нее сделать наследника - ну и как мне это сделать?
Deleted
Дмитрий
ага еще за классы надо увольнять кажется тут многие так думают)
Deleted
Дмитрий
const car = await Car.create(red,model1);
ну я все про это говорю: тут ты используешь create для Car, а я решил расширить класс Car и создать SuperCar
ну и как тогда мне это сделать?
Deleted
Deleted
в дочерних классах можно переиспользовать
Deleted
Также частный паттерн в таких случаях это init метод
Deleted
const car = new Car(red,model1)
await car.init()
Дмитрий
ну да такой подход я сейчас и использую
а дальше уже идет видимо вопрос идеологии...
мы это уже ранее обсуждали, что я считаю, что лучше, чтобы было просто:
const car = await new Car( red,model1 );
вместо
const car = new Car(…(await Car.prepareCarArgs(red,model1)));
потому что для себя не вижу лично почему нельзя использовать конструктор сразу для таких целей
Дмитрий
ну выкидывает у тебя создание объекта ошибку и что?
try catch в помощь
Дмитрий
как будто это первая исключение в жизни
Дмитрий
не здесь так в другом месте же будет
Deleted
Deleted
и что вообще такое исключительная ситуация
Дмитрий
я говорю не про семантику - я говорю про практику
const car = new Car(red,model1)
try await car.init() catch
или
try await new Car(red,model1) catch
для меня это одно и тоже - только в первом случае еще лишняя строчка текста
Deleted
Дмитрий
что сложного в try catch? и еще раз говорю, что использовать его все равно ведь придется - вопрос лишь где
Deleted
тебе бы в Scala
Deleted
раз ты прямо так любишь лаконичность
Дмитрий
и как по мне понятнее использовать его на первом и единственном методе
Deleted
Дмитрий
и да я специально говорю не о классах, а об асинхронных классах, потому что кто не понимает как работает асинхронные методы - пусть лучше их и не использует тогда
но для меня создание должно быть асинхронным
Дмитрий
и да с await и try-catch писать код не так уж сложно в почти синхронном стиле - вопрос лишь навыка человека и его понимания
Deleted
Дмитрий
но все равно что такое класс - это функция-создатель
и раз уж появились асинхронные функции
я хочу лишь по логике иметь и аснихронную функцию-создатель
Дмитрий
"ты большие проекты писал?"
ну как сказать... кода у меня много и асинхронного, поэтому вот и думаю, как мне его сделать более удобным...
но с другой стороны опять же вопрос определений - назвать это большим проектом пока тоже наверно нельзя...
Deleted
Дмитрий
нет наверно пока поменьше
у меня куча модулей - каждый из них небольшой и в том и суть, что все грузится, выполняется асинхронно, поэтому количество символов я особо не считал
я за количеством никогда не гоняюсь - меня больше интересует качество скорее
Deleted
>я за количеством никогда не гоняюсь - меня больше интересует качеством скорее
эм
Deleted
ладно, было весело, но я пошел
Дмитрий
ладно давай
Дмитрий
хотя я так и не услышал, чем ошибка в init лучше, чем в new - только потому что ты ее там не ожидаешь?
ну это лишь вопрос как я уже сказал понимания того с чем работаешь)
Дмитрий
вообщем все упирается как я понял в стереотипы, идеологию и семантику...
Дмитрий
давно уже заметил что в ит конечно много лишнего мусора, который с трудом чистят...
Дмитрий
есть противник и классов и методов await
и те кто готов писать 1000 строк кода вместо пары лишь бы не использовать не любимые им паттерны или не совпадающие с ними по взглядам подходы
Дмитрий
ладно неважно - мое дело предложить)
но надеюсь все-таки найдутся сторонники моего решения, как по мне оно все-таки более удобное нежели иные, но да это лишь мой взгляд на ситуацию😒
Дмитрий
кстати никто не в курсе, а какие мировые чаты по js есть?🤔
Konstantin
меня тут засунули в какой-то
Konstantin
@hellojschannel
Дмитрий
это канал) я же говорю про чаты😅
Андрей
Андрей
Попробуй описать что такое асинхронной выделение памяти. И будет норм.
Дима
Андрей
Дмитрий
ну вообще подразумеваю объект, который обладает асинхронными свойствами - обещаниями
часть обещаний я предлагаю получить сразу при создании new, если это нужно
часть обещаний можно получить потом, если это опять же нужно
Андрей
Дмитрий
в смысле где хранится объект?
особой разницы с обычным объектом я не вижу
просто часть свойств неопределена и может быть получена позже
Дмитрий
ну или при создании
Андрей
Дмитрий
ну можно и так сказать: я пишу для понимания
что асинхронным объектом для простоты я назвал объект с обещаниями
и весь вопрос лишь в том, чтобы эти обещаниями можно было получить сразу при создании объекта через new
Дмитрий
пока же вся проблема только в идеях в головах других
да придется подождать
да возможно будут ошибки
но в любом случае - придется ждать и будут ошибки
почему не в new я так и не понял
Андрей
Андрей
Вот твой асинхронный конструктор.
Дмитрий
эм ты сейчас сказал какую-то странную фразу?
если нет объекта, что с ним делать? ничего ясно дело
может стоит подождать пока он создаться?
Дмитрий
для этого собственно и есть ключевое слово - await
Андрей
Андрей
Дмитрий
new_car = await new car('red');
Андрей
Поэтому конструктор должен быть синхронным.
Дмитрий
еще раз говорю с чем работать? объект еще не создан
Андрей
Андрей
Какой оставляем?
Дмитрий
в смысле создается два объекта?
как именно?
мы можем создвать их как параллельно - так и по очереди
Дмитрий
все зависит от твоих задач
Андрей
Дмитрий
мы можем создвать так Promise.all
а можем создавать так
await obj1
await obj2
Дмитрий
а каком случае идет речь?
Дмитрий
я не понимаю твоей задачи
Андрей
Андрей
Из 2 разных функций, которые выполняются по порядку.
Дмитрий
все равно не совсем могу понять о чем именно речь
можешь написать в виде кода
Андрей
Будет долго, так как я с телефона. Но ок, сейчас напишу.