Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.11.2015, 10:38
Аватар для _Alex9_
Аспирант
Отправить личное сообщение для _Alex9_ Посмотреть профиль Найти все сообщения от _Alex9_
 
Регистрация: 28.03.2013
Сообщений: 45

Обещания в JavaScript
Читаю статью https://learn.javascript.ru/promise, но не понимаю сути. Объясните на пальцах, что позволяет делать функционал promise? Спасибо.
Ответить с цитированием
  #2 (permalink)  
Старый 07.11.2015, 11:38
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

Сообщение от _Alex9_
Объясните на пальцах, что позволяет делать функционал promise?
дождаться
Ответить с цитированием
  #3 (permalink)  
Старый 07.11.2015, 12:59
Аспирант
Посмотреть профиль Найти все сообщения от loljs
 
Регистрация: 06.11.2015
Сообщений: 68

Сообщение от _Alex9_ Посмотреть сообщение
Читаю статью https://learn.javascript.ru/promise, но не понимаю сути. Объясните на пальцах, что позволяет делать функционал promise? Спасибо.
Грубо говоря, писать асинхронный код без callback-hell
Ответить с цитированием
  #4 (permalink)  
Старый 07.11.2015, 17:25
Аватар для _Alex9_
Аспирант
Отправить личное сообщение для _Alex9_ Посмотреть профиль Найти все сообщения от _Alex9_
 
Регистрация: 28.03.2013
Сообщений: 45

Он позволяет одновременно выполнять две задачи?
Ответить с цитированием
  #5 (permalink)  
Старый 07.11.2015, 17:28
Аспирант
Посмотреть профиль Найти все сообщения от loljs
 
Регистрация: 06.11.2015
Сообщений: 68

Сообщение от _Alex9_
Он позволяет одновременно выполнять две задачи?
С точки зрения реального выполнения -- нет. JS однопоточен. Параллельное выполнение позволяют вебверкеры. Но там есть ограничения.

Последний раз редактировалось loljs, 07.11.2015 в 17:30.
Ответить с цитированием
  #6 (permalink)  
Старый 07.11.2015, 17:53
Аспирант
Посмотреть профиль Найти все сообщения от loljs
 
Регистрация: 06.11.2015
Сообщений: 68

Сообщение от _Alex9_ Посмотреть сообщение
Он позволяет одновременно выполнять две задачи?
Но в принципе, ты можешь запилить user-level threads, на основе асинхронности и сопрограмм, например.
Ответить с цитированием
  #7 (permalink)  
Старый 07.11.2015, 19:33
Аватар для _Alex9_
Аспирант
Отправить личное сообщение для _Alex9_ Посмотреть профиль Найти все сообщения от _Alex9_
 
Регистрация: 28.03.2013
Сообщений: 45

То есть асинхронные методы вроде setTimeout блокируют выполнение основного потока на время своей отработки? Что ты подразумеваешь под сопрограммами? И как примерно делается user-level threads? Первый раз о такой возможности узнаю.
Ответить с цитированием
  #8 (permalink)  
Старый 07.11.2015, 20:12
Аспирант
Посмотреть профиль Найти все сообщения от loljs
 
Регистрация: 06.11.2015
Сообщений: 68

Сообщение от _Alex9_
То есть асинхронные методы вроде setTimeout блокируют выполнение основного потока на время своей отработки?
Не сами они, а их коллбеки. Сами они вообще синхронно выполняются.

Единственный поток, в JS нет никакого "основного" потока.
Сообщение от _Alex9_
Что ты подразумеваешь под сопрограммами?
https://en.wikipedia.org/wiki/Coroutine
Сообщение от _Alex9_
И как примерно делается user-level threads?
Сопрограммы елдят некоторые куски кодов поочередно, на некотором абстрактном уровне можно считать, что эти коды выполняются параллельно
Сообщение от _Alex9_
Первый раз о такой возможности узнаю.
Это наиболее распространенная реализация

Последний раз редактировалось loljs, 07.11.2015 в 20:19.
Ответить с цитированием
  #9 (permalink)  
Старый 08.11.2015, 02:42
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

К теме http://habrahabr.ru/company/mailru/blog/269465/
Ответить с цитированием
  #10 (permalink)  
Старый 08.11.2015, 02:58
Аспирант
Посмотреть профиль Найти все сообщения от loljs
 
Регистрация: 06.11.2015
Сообщений: 68

laimas,
Какой то странный чувак
doSomething().then(doSomethingElse());

doSomething().then(doSomethingElse);

Цитата:
Если вы знаете ответ, то разрешите вас поздравить — по части промисов вы ниндзя. Пожалуй, дальше этот пост вам можно не читать.
Если кто-то не знает ответ, у него по ходу с головой проблемы, а не с промисами
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Книга: JavaScript. Сильные стороны Magneto Учебные материалы 16 21.04.2013 15:28
Интерпретатор Java на JS kobezzza Оффтопик 24 11.10.2012 18:32
Первый Moscow JavaScript Meetup korenyushkin Общие вопросы Javascript 0 26.07.2011 15:23
Последние книги по JavaScript! monolithed Учебные материалы 7 26.10.2010 19:40
Выдвет ошибку JavaScript Ромио Opera, Safari и др. 4 21.10.2010 20:34