Pull to refresh

Comments 15

Статья легкая и отличный перевод, но сама метафора довольно далека от отечественной действительности. Из всех бургерных на моей памяти сигнальный брелок давали только в Shake Shack, а остальные высвечивают номер на табло или кричат его с кухни. Из push-уведомления ситуация превращается в регулярный pull :(
Когда кричат с кухни — это вполне себе пуш, кажется =)
Как правило в бургерной довольно шумно, нотификация с кухни теряется и приходится самому делать регулярный pull с чеком — «а мой заказ еще не готов?».

Что-то не так с примером про коктейль и бургер. Это никак не показывает чейнинг, ведь чейнинг подразумевает обязательную последовательность действий, которая в примере не отражена. К примеру, заказать — посидеть на лавочке — выкинуть фантик подошло бы лучше. Особенно, если к урне тоже очередь :)

Для меня статья очень в нужное время появилась, как раз погружаюсь в эту рутину и легкое полезное чтиво очень приятный результат траты времени :)
1.function order (type) {
2.  return new Promise(function(resolve, reject) {
3.    var burger = cookBurger(type)
4.    burger.ready = function (err, burger) {
5.     if (err) {
6.        return reject(Error('Error while cooking'))
7.      }
8.      return resolve(burger)
9.    }
10.  })
11.}

Хоть к промисам это отношения и не имеет, но функция, назначенная в 4 строке, никогда не выполнится. Правильнее как-то так:
var burger = new Burger(type);
burger.ready = function (err, burger) {
    if (err) {
       return reject(Error('Error while cooking'))
     }
     return resolve(burger)
};
burger.cook();
Хотя, нет, беру свои слова обратно. Ведь в том-то и дело, что cookBurger() — асинхронная операция, и бургер станет готовым и, соответственно, запустится колбек burger.ready гарантированно после текущей итерации событийного цикла.
Было бы круто, если бы подобный перевод статьи был на тему Obaservables.
А можно маленьких примеров того, зачем это нужно? В чем плюсы, преимущества?

Например обращение к внешнему API, когда присутствует задержка ответа.

Избавление от callback hell. Если есть несколько асинхронных операций, и можно записать в более читаемом виде, а не несколькими вложенными вызовами функций с передачей аргументом другой функции.
Обычно это решалось использованием библиотек типа async. Теперь промисы дают возможность обойтись средствами самого языка.
С помощью Promise.all(), как мне видится, можно синхронизировать несколько реквестов (скажем от 3-х разных API), чтобы только в конце приступить к какому-то действию — финальный ре-рендеринг DOM'а etc. Эксперты, поправьте, если я не прав.
Sign up to leave a comment.