Javascript.RU

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

Сообщение от monolithed
setImmediate = (global.window || global).setImmediate
Почему не написать посто global.setImmediate?
для node-webkit изворачивался, убрал


Сообщение от monolithed
А что у тебя с версионностью?
Я не делал npm publish, думал он, как bower, сам будет устанавливать последнюю версию. Обновил.

Последний раз редактировалось Octane, 10.05.2014 в 17:24.
Ответить с цитированием
  #42 (permalink)  
Старый 10.05.2014, 19:59
Аватар для Maxmaxmaximus100
Аспирант
Посмотреть профиль Найти все сообщения от Maxmaxmaximus100
 
Регистрация: 30.04.2014
Сообщений: 57

а можно я на кофискрипт напишу)? а то тим меня на него подсадил я теперь ни че другого и видеть не хочу)
Ответить с цитированием
  #43 (permalink)  
Старый 10.05.2014, 19:59
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

не отмазывайся теперь
Ответить с цитированием
  #44 (permalink)  
Старый 10.05.2014, 20:17
Аватар для Maxmaxmaximus100
Аспирант
Посмотреть профиль Найти все сообщения от Maxmaxmaximus100
 
Регистрация: 30.04.2014
Сообщений: 57

ну хорошо не в 50 строк кода а в 100 примерно) но логика то простая там
Ответить с цитированием
  #45 (permalink)  
Старый 11.05.2014, 01:32
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Добавил поддержку thenable
var thenable = {
    then: function (onFulfilled) {
        onFulfilled(5);
    }
};


Promise.resolve(thenable).then(function (value) {
    console.log(value); //5
});


Promise.resolve().then(function () {
    return thenable;
}).then(function (value) {
    console.log(value); //5
});


Promise.race([thenable]).then(function (value) {
    console.log(value); //5
});


Promise.all([thenable]).then(function (values) {
    console.log(values[0]); //5
});


promise.then(thenable) выбросит исключение наружу, как в Chrome, Aurora игнорирует.

thenable.then всегда запускается асинхронно, как в Chrome (в Aurora синхронно), обсуждение бага:
https://github.com/getify/native-promise-only/issues/5
https://github.com/domenic/promises-...ing/issues/105

Последний раз редактировалось Octane, 11.05.2014 в 01:37.
Ответить с цитированием
  #46 (permalink)  
Старый 01.01.2015, 18:59
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Теперь полифил проходит все 872 теста из Promises/A+ Compliance Test Suite
+ еще несколько тестов для Promise.all и Promise.race

Чтобы сжать с помощью Closure Compiler в режиме Advanced, в экстерны надо добавить exports.
Ответить с цитированием
  #47 (permalink)  
Старый 20.01.2015, 01:24
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

А всем нравится, что resolve/reject передаются как параметры в функцию?
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
  #48 (permalink)  
Старый 20.01.2015, 04:24
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Можно наружу вытащить, если Deferred привычнее
function doSomething() {
    
    var deferred = {};
    deferred.promise = new Promise(function (resolve, reject) {
        deferred.resolve = resolve;
        deferred.reject = reject;
    });
    
    window.setTimeout(function () {
        deferred.resolve('value');
    }, 100500);

    return deferred.promise;
}

Последний раз редактировалось Octane, 20.01.2015 в 05:31.
Ответить с цитированием
  #49 (permalink)  
Старый 20.01.2015, 11:51
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Сообщение от Octane
Можно наружу вытащить, если Deferred привычнее
совершенно верно. Я просто в класс Deferred завернул Примерно так

function Deferred() {
    this.promise = new Promise(function(resolve, reject) {
        this.resolve = resolve;
        this.reject = reject
    }.bind(this));
}

Deferred.prototype.resolve = function() {};
Deferred.prototype.reject = function() {};

// --------------

var deferred = new Deferred();

setTimeout(function() {
    deferred.resolve(1);
}, 1000);

deferred.promise.then(function(response) {
    alert(response);
});
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук

Последний раз редактировалось nerv_, 20.01.2015 в 12:00.
Ответить с цитированием
  #50 (permalink)  
Старый 20.01.2015, 15:37
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

Octane, взял на заметку. Deferred действительно привычнее.
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Баг 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