Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.08.2015, 14:17
Профессор
Посмотреть профиль Найти все сообщения от javaQest
 
Регистрация: 07.08.2015
Сообщений: 154

promises. почему так запилено?
Че-то я думаю-думаю, и не могу понять, почему в JS (после стольких лет ожиданий и надежд от избавления от callback-hell), запилили настольок уродливую парашу? Ведь, по идее, JS -- это ООП язык, а в Ъ асинхронные сообщения запиливаются по другому.

Суть в том, что, чтобы наше дерьмо возвратило обещание, нам надо предварительно это подготовить с помощью new Promise, тогда как в нормальных ООП-языках, мы имеем возможность асинхронно отправить сообщение независимо от его реализации.

Почему так сделали? Причина в каких то ограничениях языка? Или просто дезигнеры че-то попутали?

Последний раз редактировалось javaQest, 09.08.2015 в 14:35.
Ответить с цитированием
  #2 (permalink)  
Старый 09.08.2015, 15:07
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,584

Хз, порой кажется, что увидали они callback-hell, ужаснулись и зафигачили первое, что пришло в голову. Symbol тоже мне кажется тотальным overmind'ом.
Но там вроде теоретически предположительно наверное скорее всего должны сидеть умные ребята, может это мы просто тупые чего-то недопонимаем?
__________________
29375, 35

Последний раз редактировалось Aetae, 09.08.2015 в 15:11.
Ответить с цитированием
  #3 (permalink)  
Старый 09.08.2015, 15:09
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 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.
Ответить с цитированием
  #4 (permalink)  
Старый 09.08.2015, 15:19
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,584

Erolast, да знаем про async - нормальное решение. Знаем и почему промисы - обратная совместимость. И всё же и всё же...
__________________
29375, 35
Ответить с цитированием
  #5 (permalink)  
Старый 09.08.2015, 15:36
Профессор
Посмотреть профиль Найти все сообщения от javaQest
 
Регистрация: 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.
Ответить с цитированием
  #6 (permalink)  
Старый 09.08.2015, 15:44
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Цитата:
Не знаю, надо осилить сначала документ.
Вот в помощь: http://pouchdb.com/2015/03/05/taming...-with-es7.html
Ответить с цитированием
  #7 (permalink)  
Старый 09.08.2015, 15:50
Профессор
Посмотреть профиль Найти все сообщения от javaQest
 
Регистрация: 07.08.2015
Сообщений: 154

Erolast,
Спасибо, не могу плюсануть в карму, форум, наверное глючит, пишет должны добавить кому то еще, я добавил Aetae, он один х*й, не дает. разлогинивание тоже не помогло, а плюсовал я тебе, ЕМНИП, вчера, так что извиняй

UPD А не, добавилось вроде, че то я запутался, может не я плюсанул, ну ладно, х с ним.

Последний раз редактировалось javaQest, 09.08.2015 в 15:54.
Ответить с цитированием
  #8 (permalink)  
Старый 09.08.2015, 16:02
Аватар для Safort
Профессор
Отправить личное сообщение для Safort Посмотреть профиль Найти все сообщения от Safort
 
Регистрация: 23.12.2013
Сообщений: 1,856

Сообщение от javaQest Посмотреть сообщение
Erolast,
Спасибо, не могу плюсануть в карму, форум, наверное глючит, пишет должны добавить кому то еще, я добавил Aetae, он один х*й, не дает. разлогинивание тоже не помогло, а плюсовал я тебе, ЕМНИП, вчера, так что извиняй

UPD А не, добавилось вроде, че то я запутался, может не я плюсанул, ну ладно, х с ним.
Повторно можно поставить плюс только после того, как несколько раз другим изменишь карму.
//Плюсанул я, но это всё не важно)
Ответить с цитированием
  #9 (permalink)  
Старый 09.08.2015, 16:05
Профессор
Посмотреть профиль Найти все сообщения от javaQest
 
Регистрация: 07.08.2015
Сообщений: 154

Safort,
Детсад какой-то. 2 раза не прокатило, поэтому, попытки прекращаю, как то смешно получается, можно покраснеть от этого нелепого конфуза

Последний раз редактировалось javaQest, 09.08.2015 в 16:08.
Ответить с цитированием
  #10 (permalink)  
Старый 09.08.2015, 16:31
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

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

Последний раз редактировалось Erolast, 09.08.2015 в 16:35.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
События клик. Почему так происходит. Evgeny_Dedov jQuery 4 04.11.2013 01:34
Объясните не могу понять почему так происходит cha0s jQuery 3 23.10.2013 12:52
обясните плз почему мой SetInterval так странно себя ведет? Влад31/08/2000 Ваши сайты и скрипты 2 29.09.2013 17:14
Объясните, почему так происходит ak-o jQuery 12 12.07.2013 12:32
Извините что создаю еще одну тему, но мне нужна помощь и ваше мнение megaupload Оффтопик 11 27.05.2013 12:58