Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #31 (permalink)  
Старый 09.05.2014, 18:31
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от Octane
это же придется подменять defineProperty для IE8…
Кому нужно подключают полифил для ES5

Сообщение от Octane
как баг исправлю.
Сколько бы я не видел реализаций промисов, только в $.Deferred нет этого бага.

Последний раз редактировалось monolithed, 09.05.2014 в 18:36.
Ответить с цитированием
  #32 (permalink)  
Старый 09.05.2014, 19:15
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

у меня тоже не было этого бага, пока не добавил параметр _defer, чтобы resolver при создании promise сразу запускался, а не при первом вызове then:

вся логика в then, только он запускает resolver, чтобы обойтись малой кровью, добавил параметр _defer
function Promise(resolver, _defer) {
    ...
    return _defer ? this ? this.then();
}
Promise.prototype.then = function () {
    ...
    resolver(...)
    ...
    return new Promise(..., _defer = true);
};
но теперь всплыл этот баг.
Ответить с цитированием
  #33 (permalink)  
Старый 09.05.2014, 20:37
Аватар для Maxmaxmaximus100
Аспирант
Посмотреть профиль Найти все сообщения от Maxmaxmaximus100
 
Регистрация: 30.04.2014
Сообщений: 57

неужели промисы так сложно реализуются О_О
у меня промисы получались в 50 строк кода со всеми плюшками.

сделать?
Ответить с цитированием
  #34 (permalink)  
Старый 09.05.2014, 21:00
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Конечно сделай


Что-то у меня голова сегодня не варит ничего исправлять, запилил пока что установку:

Bower
bower install promises

npm
npm install es6-promises

используем модуль
var Promise = require('es6-promises').Promise;



------------
а readme тут https://www.npmjs.org/package/es6-promises само обновится со временем или надо пепубликовать?

Последний раз редактировалось Octane, 09.05.2014 в 21:09.
Ответить с цитированием
  #35 (permalink)  
Старый 09.05.2014, 22:31
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от Octane
var Promise = require('es6-promises').Promise;
А почему так?

Сообщение от Octane
а readme тут https://www.npmjs.org/package/es6-promises само обновится со временем или надо пепубликовать?
Само, но лучше добавь таск в Grunt чтобы публикация в npm происходила автоматически серез Travis CI (если все тесты Ок).

Последний раз редактировалось monolithed, 09.05.2014 в 22:34.
Ответить с цитированием
  #36 (permalink)  
Старый 09.05.2014, 22:34
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

а как должно быть?)

npm же всегда папку создает, просто promise уже занято конечно, пришлось так назвать
Ответить с цитированием
  #37 (permalink)  
Старый 09.05.2014, 23:58
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от Octane
а как должно быть?)
var Promise = require('es6-promises');

PS: глянь как у меня релиз публикуется
Ответить с цитированием
  #38 (permalink)  
Старый 10.05.2014, 07:02
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

ага, спасибо, разобрался, теперь работает так.
ошибку с settled promise тоже исправил
Ответить с цитированием
  #39 (permalink)  
Старый 10.05.2014, 09:58
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

setImmediate = (global.window || global).setImmediate,

Почему не написать посто global.setImmediate?
Ответить с цитированием
  #40 (permalink)  
Старый 10.05.2014, 14:15
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

А что у тебя с версионностью?

Добавь release таск, он автоматически будет менять циферки и публиковать в npm.

Сейчас получается, что ты изменения внес, а npm их нет!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Баг Aurora promise catch Octane Оффтопик 2 28.03.2014 01:37
последовательность вызовов без promise virus-07 Общие вопросы Javascript 0 17.10.2013 10:27
работа с promise vy4eslavik AJAX и COMET 1 28.02.2013 21:55