Size: a a a

2021 March 10

MM

Maksim Masiukevich in PHP
И не та совсем
источник

KN

Kirill Nesmeyanov in PHP
Artem Molotov
Мне это интерфейс psr'овского контейнера напомнило. Тоже нет set метода, хотя иногда этого хочется.
и это хорошо =)

потому что если надо - можно в любой момент написать MutableContainerInterface и вертеть им как вздумается
источник

KN

Kirill Nesmeyanov in PHP
Artem Molotov
Ну я вот тоже не понял почему другие библиотеки юзают Promise, а не тот же PromiseInterface. Видимо, речь о методах, которых нет в PromiseInterface и разработчики Amp'а специально закрыли возможность расширения, как указал Максим.
хз причём тут Amp, учитывая что в нём нет промизов и говорили мы про новвые промизы реакта
источник

MM

Maksim Masiukevich in PHP
Про промисы реакта ниче не знаю) эта херня в целом неюзабельна.
источник

AM

Artem Molotov in PHP
Maksim Masiukevich
Ну тип проблема не с того конца решается
Да, согласен, уже понял. О хуках то я сразу не подумал. Появилась мысль о расширении с целью какой-то хитрой сериализации включая приватное состояние и сохранения промисов куда-то. Но а) "это ж надо до такого ******* додуматься"; б) наверняка тоже можно сделать иначе, если хуки с приостановкой исполнения не помогут (если я щя херню не надумал)
источник

KN

Kirill Nesmeyanov in PHP
ну например нужно добавить метод, возвращающий состояние промиза
источник

KN

Kirill Nesmeyanov in PHP
типа он уже резолвед, кансиллед или ещё пендинг, чтоб писать:
if ($promise->isCompleted()) { ... }
источник

AM

Artem Molotov in PHP
Kirill Nesmeyanov
и это хорошо =)

потому что если надо - можно в любой момент написать MutableContainerInterface и вертеть им как вздумается
В таком случае всё равно нужно будет знать о какой-то реализации (когда будем писать мост к существующему контейнеру, к примеру). Но да, варианты есть
источник

KN

Kirill Nesmeyanov in PHP
мало ли что, придумать кейсов можно овердохрена
источник

AM

Artem Molotov in PHP
Kirill Nesmeyanov
хз причём тут Amp, учитывая что в нём нет промизов и говорили мы про новвые промизы реакта
тьфу, ок
источник

KN

Kirill Nesmeyanov in PHP
а проблема файнала в реакте была в том, что там промиз вместо одного then стал содержать: cancel, then, otherwise, done и кучу других методов
источник

KN

Kirill Nesmeyanov in PHP
причём
1) не все промизы могут быть каннсиллабл
2) otherwise является лишь частным применением then
3) done является частным применением then
источник

KN

Kirill Nesmeyanov in PHP
но благо там есть интерфейс, так что через декоратор можно решить половину вопросов
источник

KN

Kirill Nesmeyanov in PHP
а, не, не во второй версии, в третьей
источник

KN

Kirill Nesmeyanov in PHP
источник

KN

Kirill Nesmeyanov in PHP
и сам Promise стал финальным
источник

AM

Artem Molotov in PHP
Из всех объяснений почему это было сделано, только слова в стиле "да и так все промайсы с этим методом". Или ответ слишком очевиден, или не особо-то и дискутируют

https://github.com/reactphp/promise/pull/75
источник

KN

Kirill Nesmeyanov in PHP
ого, ты даже нашёл первоисточник, до такой степени я не погружался =)
источник

AS

Anton Shabouta in PHP
Kirill Nesmeyanov
У них там даже в заголовке написано: "Representation of the future value of an asynchronous operation.".

Ну так берёте и называете: FutureValue, AsyncOperation, да как угодно)
источник

AS

Anton Shabouta in PHP
Ты вот сейчас серьезно?
источник