
Дмитрий
16.02.2018
18:29:07
ну и те ты считаешь что конструктор лишний в классе? может все твой измышления тогда к этому?
и дело не в асинхронности? зачем тогда нам по-твоему конструктор?

Konstantin
16.02.2018
18:29:39
он функциональщик :)

Дмитрий
16.02.2018
18:30:05
ну так пусть использует - я за разные подходы
тем более если они не мешают другим

Google

Дмитрий
16.02.2018
18:31:38
просто да я могу сделать костылей кучу - у меня у самого код хитрый до жути...
но лично мне было бы лаконичнее использовать на мой взгляд - именно асинхронные классы с асинхронным конуструктором по аналогии с функциями
так то и сейчас можно сделать через промисы асинхронные классы:
class Example { constructor() { return new Promise}}
но такой подход просто выглядит криво и менее удобен в использовании

Konstantin
16.02.2018
18:33:40
лучше расскажите как с утечками памяти боретесь
вот есть у меня большой скрипт, который отжирает память
в браузерной консоли особо не поймёшь где и что

Дмитрий
16.02.2018
18:35:04
ну кхм архитектуру надо знать и понимать досконально куда и что уходит

Konstantin
16.02.2018
18:36:39
ну я вижу что утечка определенно есть
а что и где - хз

Дмитрий
16.02.2018
18:37:53
ну смотря насколько сложный код...
хотя сам пока не сталкивался...
а чужого кода много? просто в моем случае я бы больше смотрел точно в сторону сторонних библиотек?

Konstantin
16.02.2018
18:39:43

Дмитрий
16.02.2018
18:40:06
ну если код весь твой - тогда все гораздо проще)

Дмитрий
16.02.2018
18:40:41
он функциональщик :)
Должно быть стыдно если т.н. "функциональщик" вынужден объяснять вам что такое классы и для чего в них конструкторы
Особенно вам понравится как вам придётся делать наследование, я вам гарантирую, это полный восторг

Google

Дмитрий
16.02.2018
18:42:02
ну я себя ни к каким категориям не причисляю)
я исхожу из своей логики так то)
я ее обозначил: переменные указываю в конструкторе для получения готового образца по заказу
и разница для меня лишь в асинхронном случае в том, что заказ нужно подождать - это мое мнение лично

Дмитрий
16.02.2018
18:42:08
await super
Супер, правда?

Дмитрий
16.02.2018
18:42:14
и в чем проблема?

Дмитрий
16.02.2018
18:43:08
Если ты не видишь здесь проблемы то объяснять придётся гораздо больше чем я планировал

Дмитрий
16.02.2018
18:43:12
добавить одно слово в extends? это так сложно считаешь?

Дмитрий
16.02.2018
18:43:35
А, то есть у нас теперь ещё и в extends await? Жесть)

Konstantin
16.02.2018
18:44:10
наследование по прототипу :)

Дмитрий
16.02.2018
18:44:11
ты видно не читал изначальную ссылку:
//AsyncClass
async_class AsyncClass { // keyword async_class(example)
constructor() {
await something(); // now constructor async too
}}
//AsyncObj in some async method
let NewAsyncObj = await AsyncClass(); // create async obj
//Extends
async_class ExtAsyncClass extends AsyncClass{
constructor() {
await super(); // now we can await super too
await something();
}}
да я изначально про это все писал

Дмитрий
16.02.2018
18:45:40
Конструкторы в классах — это не место для ваших фетчей

Дмитрий
16.02.2018
18:45:50
почему нет?

Дмитрий
16.02.2018
18:45:55
Потому что

Andrey
16.02.2018
18:46:01
а потом будет export default async abstract class NameClass extends Class implements Int1, Int2, .....
wtf ?

Дмитрий
16.02.2018
18:46:37
не надо утрировать

Andrey
16.02.2018
18:46:49
но так и будет в некоторых случаях )

Дмитрий
16.02.2018
18:46:51
Я хз, я не вижу больше смысла объяснять, ты либо соглашаешься либо нет, дело твоё, я не могу вынуть из головы собственный опыт и показать тебе что с тобой обязательно случится в дальнейшем и возможно даже неоднократно

Дмитрий
16.02.2018
18:47:47

Дмитрий
16.02.2018
18:48:16
Да, тот же самый щит
Дейли ремайндер

Google

Дмитрий
16.02.2018
18:48:26
Конструкторы в классах — это не место для ваших фетчей
А, я кстати понял в чем дело

Дмитрий
16.02.2018
18:50:09
аргумент потому что - это не аргумент)
я свои доводы привел - так удобнее работать с объектами)
file = await new File('troll.jpg');
иначе зачем в конструкторе тогда вообще свойства - я так и не услышал

Дмитрий
16.02.2018
18:50:27
Ты пытаешься иммитировать замыкания с помощью классов, как это принято в других языках
В жс, имеющим нативные замыкания в нормальной форме это выглядит инвалидно

Andrey
16.02.2018
18:51:09

Дмитрий
16.02.2018
18:51:15
Какое такое?
Если ему нужен класс который выкидывается сразу после завершения реквеста, то это значит что у него просто нет места куда писать контекст

Andrey
16.02.2018
18:51:44

Дмитрий
16.02.2018
18:53:35
Джава, до диез, лол

Дмитрий
16.02.2018
19:02:55
в целом конечно у меня код и так крайне странный...
да и как обычно я видно тороплюсь с новыми фишками...
тут народ еще к await то не все привыкли, а я уже хочу async class?
await хотя бы классовые переменные, декораторы и приватность) да и то похоже долго ждать⏳

A
16.02.2018
19:44:48

Дмитрий
16.02.2018
20:13:55

A
16.02.2018
20:17:13

Дмитрий
16.02.2018
20:20:07

Котяй Негодяй
16.02.2018
20:21:59
Как ты себе это представляешь?

Сергей
16.02.2018
20:22:33

Google

Admin
ERROR: S client not available

Котяй Негодяй
16.02.2018
20:22:55
Да блин. Ну сделай себе асинхронную фабрику, если очень надо.
Профит.

Сергей
16.02.2018
20:23:29
+

Котяй Негодяй
16.02.2018
20:23:31
Работать будет точно так же, как и асинхронный конструктор.
Вообще у нас нет классов. Так что забей.

Дмитрий
16.02.2018
20:28:23

A
16.02.2018
20:31:26
ну работает типа такого
То есть твоя логика такая: мы создаём объект, который в конструкторе выполняет блокирующую операцию. И для того чтобы выполнить эту операцию асинхронно, то мы делаем класс объекта асинхронным и ожидаем ответа метода конструктора. Так получается?

Дмитрий
16.02.2018
20:41:23
ну вроде так - да по сути асинхронный класс - это асинхронный конструктор
я уже выше писал - это можно сравнить с тем, что вы делаете заказ и в одном случае он готов мгновенно, а в другом случае нужно подождать
просто для меня async class столь же логичен, как и async func - да можно и сейчас все сделать разными методами/костылями
мое предложение лишь сахар для работы с асинхронными свойствами/объектами через классы

A
16.02.2018
20:50:53


Дмитрий
16.02.2018
20:54:03
вопрос в сложности примера
в твоем случае ты получаешь не тоже самое, что в моем примере
ты получаешь сами файлы, а в моем примере ты получал именно объекты, где одним из свойств был blob(сам файл)
просто я привел изначально пример чисто для показания самого принципа работы и сферы применения
а так конечно там в конструкторе может быть 10 свойств, которые могут быть параллельно выполняться и прочее-прочее
конкретно я например в принципе работаю с разными элементами, которые динамически создаются и грузятся из модулей)
поэтому сложный элемент(объект) может состоять из многих мелких)
поэтому я уже выше писал если взять более сложный пример например создание машины
async class Car{
constructor(color...){
[this.part1, this.part2, this.part3] = await Promise.all([
get_path1(color1),
get_path2(color2),
get_path3(color3),
]);
}}
car = await new Car(green,red,blue);
ну и например если нам нужно расширить класс то все тоже достаточно тривиально
async class SuperCar extends Car{
constructor(color...){
await super(color...);
this.super_car = true;
}}


A
16.02.2018
21:10:47

Дмитрий
16.02.2018
21:13:40
ну это уже вопрос иной: все или не все
взять ту же машину - ты можешь ее купить, а потом улучшить, если вдруг захотелось
все полагаю зависит от разных ситуаций, но async class - по сути тот же класс, но с большим простором для работы собственно с асинхронностью
вообщем вопрос переменных я бы ставил такой же как если бы асинхронности не было вообще

A
16.02.2018
21:23:16

Дмитрий
16.02.2018
21:26:15
не совсем понимаю вопрос...
изначально вся работа ведется в асинхронном режиме,если ты про это - я бы еще назвал его реальнм режимом)
async function get_car(){
car = await new Car(green,red,blue);
все здесь ждем нашу машинку или делаем еще что-то
в зависимости от наших задач
}

A
16.02.2018
21:29:57

Google

Дмитрий
16.02.2018
21:31:13
ну вообще я просто видимо не особо знаком с Вами, поэтому мне тяжело отвечать порой...
но вообще для паралелльной работы в js есть web workers
и да как бы async func - это уже стандарт
я лишь говорю о его применение еще и на классы

Daniel
16.02.2018
21:34:43
Не уверен, что это имеет смысл, учитывая что можно просто сделать функцию

Сергей
16.02.2018
21:34:45

Дмитрий
16.02.2018
21:35:30

Сергей
16.02.2018
21:36:21