Цитата:
Цитата:
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, время: 23:16. |