Метка «promises»

Привет всем!

В данной статье я хотел бы поделиться с вами соображениями о том, как на практике можно использовать механизм работы с асинхронными процессами, предоставляемый библиотекой jQuery с версии 1.5 под названием deferred, «отложенный» (jQuery.Deferred), а также со связанными объектами и методами.

Разумеется, уже написан не один десяток статей на тему работы с парой deferred/promise. Своей же я задался целью предоставить такой набор знаний, который дал бы новичку, во-первых, возможность забыть о своих страхах перед непонятным и сложным и, во-вторых, сделать еще один шаг к написанию понятного и хорошо структурированного кода, работающего с асинхронными процессами. Я бы хотел сосредоточить свое и ваше внимание на проблемах, которые легко разрешаются ипользованием deferred, на предпосылках и типовых схемах использования этого объекта.
Читать полностью »

Догоняя релиз Opera 19 для Андроида на прошлой неделе, выходит Opera 19 для Mac и Windows (на основе Chromium 32). Дальше о том, что это значит для разработчиков.

Промисы в JavaScript

Так называемые «промисы» (promises) теперь доступны в JavaScript. Промисы — это удобный способ получить доступ к результатам выполнения операций в JavaScript, будь они синхронные или асинхронные. Самый простой пример:

var promise = new Promise(function(resolve) {
setTimeout(function() {
resolve('The time machine worked!');
}, 2014); // see what I did there?
});

promise.then(function(result) {
console.log('Promise resolved.', result);
});

Джейк Арчибальд недавно написал подробное введение в промисы, так что не пропустите, если у вас остались вопросы или стало интересно посмотреть на другие примеры.Читать полностью »

Догоняя релиз Opera 19 для Андроида на прошлой неделе, выходит Opera 19 для Mac и Windows (на основе Chromium 32). Дальше о том, что это значит для разработчиков.

Промисы в JavaScript

Так называемые «промисы» (promises) теперь доступны в JavaScript. Промисы — это удобный способ получить доступ к результатам выполнения операций в JavaScript, будь они синхронные или асинхронные. Самый простой пример:

var promise = new Promise(function(resolve) {
setTimeout(function() {
resolve('The time machine worked!');
}, 2014); // see what I did there?
});

promise.then(function(result) {
console.log('Promise resolved.', result);
});

Джейк Арчибальд недавно написал подробное введение в промисы, так что не пропустите, если у вас остались вопросы или стало интересно посмотреть на другие примеры.Читать полностью »

image
Ответьте на три вопроса по JavaScript. Если какой-то из них вас затруднит, вам следует прочесть отличную бесплатную книгу Тревора Бернхема (Trevor Burnham) — Async JavaScript. Всего 90 страниц, но здесь разобраны такие темы, как событийный цикл JavaScript, синхронность/асинхронность, однопоточность/многопоточность (воркеры), promises, fibers и еще много чего интересного.

Итак, что выдаст следующий код?

for (var i = 1; i <= 3; i++) {
    setTimeout(function(){ console.log(i); }, 0);
};

Ответ

4
4
4

Читать полностью »

Chain.js — маленькая библиотека, сделанная для создания цепочек из синхронных и асинхронных функций. Идея цепочек родилась после знакомства с Common JS Promises. Само определение «обещаний» говорит, что promise — это значение выполнения одной операции. Если вам захотелось что-то изобрести, придумать или создать, то вы просто обязаны попытаться связать эти операции в цепочки. Конечно, вы не обязаны, и это естественно, но для меня это стало основным мотивом. Перед этим я действительно столкнулся с некоторыми неудобствами связывания promise-операций, хотя ожидал что именно с этим они мне и помогут.
Читать полностью »

в 15:14, , рубрики: node.js, promises, метки: ,

Добрый день, Хабрахабр.

Предисловие

Была довольно простая задача: получить набор документов из базы, каждый документ преобразовать и отправить пользователю все преобразованные документы, порядок их менять нельзя, для обработки документа используется асинхронная функция. Если на каком-то документе вылезла ошибка — документы мы не отправляем, только ошибку и заканчиваем обработку документов.
Для решения задачи была выбрана библиотека Q, так как сам поход Promise мне симпатичен. Но возникла одна загвоздка, вроде бы элементарная задача, а выполняется больше секунды, а точнее 1300 мс, вместо ожидаемых 50-80 мс. Дабы разобраться, как все устроено и проникнуться асинхронностью было решено написать специализированный «велосипед» под данную задачу.

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js