
Vladimir
08.12.2016
22:36:07
Тебе нужен тот кто будет эти генераторы ждать и резрлвить

Yura
08.12.2016
22:36:11
да
нужен луп

Sergey
08.12.2016
22:36:15
да, нужен

Google

Yura
08.12.2016
22:36:16
корневой
но это не сильная проблема

Sergey
08.12.2016
22:36:22
но он сверху где-то

Vladimir
08.12.2016
22:36:24
Проблема в том что он корневой

Yura
08.12.2016
22:36:26
корневая корутина

Sergey
08.12.2016
22:36:27
система посередине
и ничего не знает ни о лупе ни о асинхронном драйвере

Yura
08.12.2016
22:36:42
это не проблема

Vladimir
08.12.2016
22:36:46
Т.е всё кто что-то ждёт, доджны дальше прокитывать генератор до лопа

Sergey
08.12.2016
22:37:02
ты amphp видел?
там сделано весьма удобно

Yura
08.12.2016
22:37:26
только асинхронный код

Google

Vladimir
08.12.2016
22:37:27
Потому что yield возвращает generator

Sergey
08.12.2016
22:37:33
и что?

Vladimir
08.12.2016
22:37:37
О нём и пою
Могу конкретный пример привести

Yura
08.12.2016
22:38:00
а стоп
нет
можно же луп прокинуть
в сервисы

Sergey
08.12.2016
22:38:15
хм....

Vladimir
08.12.2016
22:38:22
Да всё можно
Я возможно хочу многого
Но хотелось бы поведения как у async await
Возможно я не прав, и буду рад это узнать =)
Но я как раз сейчас пишу небольшой проект, для пощупать и прям боль

Yura
08.12.2016
22:41:01
ну я написал небольшой сервис
вроде норм
не так больно, как я думал

Vladimir
08.12.2016
22:46:38
Давай на примере.
Есть небольшой класс он подлучает данные из редиса. Что бы вернуть promise мне нужно его отдельно создать через promisor.
public function fetchById(string $className, string $id): Promise
{
$promisor = new Deferred();
\Amp\immediately(function () use ($promisor, $className, $id) {
$key = $this->keyGenerator->getKeyForClassNameId($className, $id);
$data = yield $this->redisClient->get($key);
$model = $this->serializer->deserialize($data, $className, 'json');
$promisor->succeed($model);
});
return $promisor->promise();
}

Google

Vladimir
08.12.2016
22:47:14
И вот такое везде. Ибо нельзя просто взять и заюзать yield
Его нужно прокидывать всё глубже и глубже, но ты же не знаешь где и как он будет вызываться

Yura
08.12.2016
22:47:52
я рекоил юзал

Vladimir
08.12.2016
22:48:03
Я пока не придумал как это решить
Ну мысль там та же что в amphp

Yura
08.12.2016
22:49:01
да, ты не можешь просто так везде писать в асинхронном стиле

Vladimir
08.12.2016
22:49:16
Именно
А хочется

Yura
08.12.2016
22:50:13
ну я пока так не загонялся
где-то прокидывал луп
где-то лишний раз yield

Vladimir
08.12.2016
22:50:58
Ну в целом на работе я уже давно использую reactphp для асинхронной обработки, тех же очередей и websocket.

Vladimir
08.12.2016
22:51:06
И уже хочеться большего

Yura
08.12.2016
22:51:15
ну у меня вон тоже очереди
с задачами

Vladimir
08.12.2016
22:51:32
Особенно в свете того что websocket в сравнении с http просто мега скоростной =)

Yura
08.12.2016
22:51:57
в плане того, что он не закрывается?

Vladimir
08.12.2016
22:52:23
Да, и не надо на каждый запрос парсить хэдеры

Yura
08.12.2016
22:52:46
ой, ну не знаю

Vladimir
08.12.2016
22:52:57
Т.е. можно сделать простейший RPC и это будет очень быстро

Google

Yura
08.12.2016
22:52:57
мне кажется в это мало кто упирается

Sergey
08.12.2016
22:53:00
node --harmony - async/await :)

Yura
08.12.2016
22:53:32
держать вебсокет

Vladimir
08.12.2016
22:53:35

Yura
08.12.2016
22:53:36
если нет задач
тоже не айс
на планшетах например батарейку жрёт)
нормально так

Vladimir
08.12.2016
22:54:05

Admin
ERROR: S client not available

Yura
08.12.2016
22:54:15
юзай TS

Sergey
08.12.2016
22:54:21
TS норм

Vladimir
08.12.2016
22:54:29
Да там теже грабли только угол другой

Yura
08.12.2016
22:54:38
нет конечно
там вполне прекрасный язык

Vladimir
08.12.2016
22:55:10
Да я пробовал

Yura
08.12.2016
22:55:14
и я пробовал
и знаю многих кто пробовал
и знаю как они развиваются

Vladimir
08.12.2016
22:55:31
Меня там жутко бесит необходимость биндить функции класса к классу

Google

Yura
08.12.2016
22:55:59
ты на хаскеле писал?

Vladimir
08.12.2016
22:56:19
Только азы, типа 2+2
В типах по книжке, но пока не проникся

Yura
08.12.2016
22:56:52
он жутко безопасный
в плане совместимости типов

Vladimir
08.12.2016
22:57:22
Ну haskell скрого академический язык, не дя промышленного
программирования

Yura
08.12.2016
22:57:34
ну
есть примеры обратного

Vladimir
08.12.2016
22:57:38
В плане безопасности rust тоже отличный

Yura
08.12.2016
22:57:46
не
я крайности рассматриваю
кароче
к чему я
тайпскрипт пытается найти грань
между гибкостью
и безопасностью
пока норм

Vladimir
08.12.2016
22:59:26
Я пробовал писать на TS приложение, и таки искать/писать для него typings это боль
Но направление верное

Yura
08.12.2016
22:59:53
почему боль?
@mkusher