Цитата:
Цитата:
npm publish , думал он, как bower, сам будет устанавливать последнюю версию. Обновил. |
а можно я на кофискрипт напишу)? а то тим меня на него подсадил я теперь ни че другого и видеть не хочу)
|
не отмазывайся теперь ;)
|
ну хорошо не в 50 строк кода а в 100 примерно) но логика то простая там
|
Добавил поддержку 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 |
Теперь полифил проходит все 872 теста из Promises/A+ Compliance Test Suite
+ еще несколько тестов для Promise.all и Promise.race Чтобы сжать с помощью Closure Compiler в режиме Advanced, в экстерны надо добавить exports. |
А всем нравится, что resolve/reject передаются как параметры в функцию?
|
Можно наружу вытащить, если 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; } |
Цитата:
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); }); |
Octane, взял на заметку. Deferred действительно привычнее.
|
Цитата:
|
Часовой пояс GMT +3, время: 00:18. |