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

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

Upload: moscowjs

Post on 14-Aug-2015

299 views

Category:

Software


7 download

TRANSCRIPT

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

MoscowJS 24

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

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

• Проблемы

• Задачи

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

2

Promises

callback hell promise heaven3

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

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

5

Проблемы

#1 Promise hell (pyramid of doom)

7

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

8

9

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

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

10

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

11

12

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

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

ES6 promises

13

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

Q promises

14

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

15

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

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

16

ES6 promises

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

17

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

18

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

19

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

=

20

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

21

#7 promise !== promise.then()

22

#7 promise !== promise.then()

23

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

Выведет: “foo”

24

25

Задачи

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

26

ES6 Promises это

27

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

28

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

29

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

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

30

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

31

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

32

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

33

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

34

Q promises

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

35

ES6 promises и другие

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

36

37

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

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

38

ES6 Promises

39

ES7 Async/await

40

41

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

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

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

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

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

Вопросы?