Top Banner
Готовим промисы правильно MoscowJS 24 Докладчик: Яманов Андрей http://tenphi.me
43

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

Aug 14, 2015

Download

Software

MoscowJS
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: "Готовим промисы правильно", Андрей Яманов, MoscowJS 24

Готовим промисы правильно

MoscowJS 24

Докладчик: Яманов Андрей http://tenphi.me

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

О чем этот доклад

• Проблемы

• Задачи

• Будущее промисов

2

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

Promises

callback hell promise heaven3

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

В чем отличие?Функции doSomething() и doSomethingElse() обе

возвращают промисы.4

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

5

Проблемы

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

#1 Promise hell (pyramid of doom)

7

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

#2 Неправильное использование итерирования

8

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

9

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

#2 Неправильное использование итерирования

Используем Promise.all()

10

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

#3 Забытый .catch()

11

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

12

Код, где не обрабатываются ошибки

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

#3 Забытый .catch()

ES6 promises

13

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

#3 Забытый .catch()

Q promises

14

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

#4 Повсеместное использование “deferred”

15

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

Используем хелперы

#4 Повсеместное использование “deferred”

16

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

ES6 promises

#4 Повсеместное использование “deferred”

17

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

#5 Игнорирование / Незнание Promise.resolve() и Promise.reject()

18

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

#5 Игнорирование / Незнание Promise.resolve() и Promise.reject()

19

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

#6 .catch() не совсем то же самое, что .then(null, …)

=

20

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

#6 .catch() не совсем то же самое, что .then(null, …)

21

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

#7 promise !== promise.then()

22

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

#7 promise !== promise.then()

23

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

#8 .then() принимает только функции.

Выведет: “foo”

24

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

25

Задачи

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

ES6 Promises это не только

26

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

ES6 Promises это

27

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

Решение задач: Параллельное выполнение

28

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

Решение задач: Последовательное выполнение

29

let funcs = массив функций, создающих и возвращающих промисы.

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

Решение задач: Последовательное выполнение

30

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

Решение задач: Последовательное выполнение

31

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

Решение задач: Последовательное выполнение

32

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

Решение задач: Опциональное звено

33

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

Решение задач: Отладка

34

Q promises

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

Решение задач: Отладка

35

ES6 promises и другие

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

Решение задач: Транзакции

36

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

37

Будущее промисов

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

ES7 Async/awaitРеализовано через промисы

38

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

ES6 Promises

39

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

ES7 Async/await

40

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

41

Проголодались?

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

В чем отличие?Функции doSomething() и doSomethingElse() обе

возвращают промисы.42

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

Спасибо за внимание!

http://linkbun.ch/03oyoМатериалы

Вопросы?