Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

"Готовим промисы правильно", Андрей Яманов, MoscowJS 24

1,021 views

Published on

Промисы прочно вошли в ES-стандарт и жизнь современных JS-разработчиков. Однако многие, используя их чуть ли не каждый день, не до конца понимают, как они устроены. Какие опасности и возможности в себе кроют. Доклад освежит знания о промисах, предостережёт о нюансах реализаций и подскажет парочку трюков.

Published in: Software
  • Be the first to comment

"Готовим промисы правильно", Андрей Яманов, MoscowJS 24

  1. 1. Готовим промисы правильно MoscowJS 24 Докладчик: Яманов Андрей http://tenphi.me
  2. 2. О чем этот доклад • Проблемы • Задачи • Будущее промисов 2
  3. 3. Promises callback hell promise heaven 3
  4. 4. В чем отличие? Функции doSomething() и doSomethingElse() обе возвращают промисы. 4
  5. 5. 5 Проблемы
  6. 6. #1 Promise hell (pyramid of doom) Ссылка на GitHub 6
  7. 7. #1 Promise hell (pyramid of doom) 7
  8. 8. #2 Неправильное использование итерирования 8
  9. 9. 9
  10. 10. #2 Неправильное использование итерирования Используем Promise.all() 10
  11. 11. #3 Забытый .catch() 11
  12. 12. 12 Код, где не обрабатываются ошибки
  13. 13. #3 Забытый .catch() ES6 promises 13
  14. 14. #3 Забытый .catch() Q promises 14
  15. 15. #4 Повсеместное использование “deferred” 15
  16. 16. Используем хелперы #4 Повсеместное использование “deferred” 16
  17. 17. ES6 promises #4 Повсеместное использование “deferred” 17
  18. 18. #5 Игнорирование / Незнание Promise.resolve() и Promise.reject() 18
  19. 19. #5 Игнорирование / Незнание Promise.resolve() и Promise.reject() 19
  20. 20. #6 .catch() не совсем то же самое, что .then(null, …) = 20
  21. 21. #6 .catch() не совсем то же самое, что .then(null, …) ≠ 21
  22. 22. #7 promise !== promise.then() 22
  23. 23. #7 promise !== promise.then() 23
  24. 24. #8 .then() принимает только функции. Выведет: “foo” 24
  25. 25. 25 Задачи
  26. 26. ES6 Promises это не только 26
  27. 27. ES6 Promises это 27
  28. 28. Решение задач: Параллельное выполнение 28
  29. 29. Решение задач: Последовательное выполнение 29 let funcs = массив функций, создающих и возвращающих промисы.
  30. 30. Решение задач: Последовательное выполнение 30
  31. 31. Решение задач: Последовательное выполнение 31
  32. 32. Решение задач: Последовательное выполнение 32
  33. 33. Решение задач: Опциональное звено 33
  34. 34. Решение задач: Отладка 34 Q promises
  35. 35. Решение задач: Отладка 35 ES6 promises и другие
  36. 36. Решение задач: Транзакции 36
  37. 37. 37 Будущее промисов
  38. 38. ES7 Async/await Реализовано через промисы 38
  39. 39. ES6 Promises 39
  40. 40. ES7 Async/await 40
  41. 41. 41 Проголодались?
  42. 42. В чем отличие? Функции doSomething() и doSomethingElse() обе возвращают промисы. 42
  43. 43. Спасибо за внимание! http://linkbun.ch/03oyo Материалы Вопросы?

×