09.08.2015, 14:17
|
Профессор
|
|
Регистрация: 07.08.2015
Сообщений: 154
|
|
promises. почему так запилено?
Че-то я думаю-думаю, и не могу понять, почему в JS (после стольких лет ожиданий и надежд от избавления от callback-hell), запилили настольок уродливую парашу? Ведь, по идее, JS -- это ООП язык, а в Ъ асинхронные сообщения запиливаются по другому.
Суть в том, что, чтобы наше дерьмо возвратило обещание, нам надо предварительно это подготовить с помощью new Promise, тогда как в нормальных ООП-языках, мы имеем возможность асинхронно отправить сообщение независимо от его реализации.
Почему так сделали? Причина в каких то ограничениях языка? Или просто дезигнеры че-то попутали?
Последний раз редактировалось javaQest, 09.08.2015 в 14:35.
|
|
09.08.2015, 15:07
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,584
|
|
Хз, порой кажется, что увидали они callback-hell, ужаснулись и зафигачили первое, что пришло в голову. Symbol тоже мне кажется тотальным overmind'ом.
Но там вроде теоретически предположительно наверное скорее всего должны сидеть умные ребята, может это мы просто тупые чего-то недопонимаем?
__________________
29375, 35
Последний раз редактировалось Aetae, 09.08.2015 в 15:11.
|
|
09.08.2015, 15:09
|
|
Профессор
|
|
Регистрация: 24.09.2013
Сообщений: 1,436
|
|
Обещания - это не финальное решение для обеспечения удобной работы с асинхронщиной, а лишь шаг на пути к нему. Сейчас идет разработка фичи async functions, которая обеспечит асинхронную работу без увеличения стека, с нормальным синтаксисом и перехватом ошибок.
Выглядит так:
async function loadUser(id) {
let user;
try {
let response = await fetch(`/api/users/${id}`);
user = response.body;
} catch (error) {
console.error(error);
}
return user;
}
Новейший текст спецификации - http://tc39.github.io/ecmascript-asyncawait/.
Это то?
Последний раз редактировалось Erolast, 09.08.2015 в 15:17.
|
|
09.08.2015, 15:19
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,584
|
|
Erolast, да знаем про async - нормальное решение. Знаем и почему промисы - обратная совместимость. И всё же и всё же...
__________________
29375, 35
|
|
09.08.2015, 15:36
|
Профессор
|
|
Регистрация: 07.08.2015
Сообщений: 154
|
|
Сообщение от Erolast
|
Это то?
|
Не знаю, надо осилить сначала документ. Я вот парралельно пишу на Io (это который язык, не js-фреймверк), там все вообще элементарно делается, типа
someMethod := casualMethod(some code returns some value)
casualVar := someMethod
aFuture := @someMethod
aFuture println
casualVar ptintln
1 println
// выхлоп будет
>>some value
>>1
>>some value // -- из фьючера
подозреваю, что это не совсем то. Во всяком случае, async/await -- точно не то
Последний раз редактировалось javaQest, 09.08.2015 в 15:43.
|
|
09.08.2015, 15:50
|
Профессор
|
|
Регистрация: 07.08.2015
Сообщений: 154
|
|
Erolast,
Спасибо, не могу плюсануть в карму, форум, наверное глючит, пишет должны добавить кому то еще, я добавил Aetae, он один х*й, не дает. разлогинивание тоже не помогло, а плюсовал я тебе, ЕМНИП, вчера, так что извиняй
UPD А не, добавилось вроде, че то я запутался, может не я плюсанул, ну ладно, х с ним.
Последний раз редактировалось javaQest, 09.08.2015 в 15:54.
|
|
09.08.2015, 16:02
|
|
Профессор
|
|
Регистрация: 23.12.2013
Сообщений: 1,856
|
|
Сообщение от javaQest
|
Erolast,
Спасибо, не могу плюсануть в карму, форум, наверное глючит, пишет должны добавить кому то еще, я добавил Aetae, он один х*й, не дает. разлогинивание тоже не помогло, а плюсовал я тебе, ЕМНИП, вчера, так что извиняй
UPD А не, добавилось вроде, че то я запутался, может не я плюсанул, ну ладно, х с ним.
|
Повторно можно поставить плюс только после того, как несколько раз другим изменишь карму.
//Плюсанул я, но это всё не важно)
|
|
09.08.2015, 16:05
|
Профессор
|
|
Регистрация: 07.08.2015
Сообщений: 154
|
|
Safort,
Детсад какой-то. 2 раза не прокатило, поэтому, попытки прекращаю, как то смешно получается, можно покраснеть от этого нелепого конфуза
Последний раз редактировалось javaQest, 09.08.2015 в 16:08.
|
|
09.08.2015, 16:31
|
|
Профессор
|
|
Регистрация: 24.09.2013
Сообщений: 1,436
|
|
Да, система кармы тут, по меньшей мере, странная - ни для выражения благодарности, ни для саморегуляции не годится) Запилили бы хотя бы обычные лайки с указанием числа у каждого поста - я считаю, куда лучше б было.
Последний раз редактировалось Erolast, 09.08.2015 в 16:35.
|
|
|
|