This commit is contained in:
Ilya Kantor 2017-04-07 18:38:51 +03:00
parent 48481aa974
commit a43475f540
4 changed files with 84 additions and 0 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 117 KiB

After

Width:  |  Height:  |  Size: 118 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 227 KiB

After

Width:  |  Height:  |  Size: 227 KiB

Before After
Before After

View file

@ -0,0 +1,84 @@
# Promises chaining
There are many great things about promises. We're only starting.
Now we'll cover promises chaining. They allow to build sequences of asynchronous actions.
[cut]
Here's the idea:
```js run
new Promise(function(resolve, reject) {
// do a job...
setTimeout(() => resolve(1), 1000);
}).then(function(result) {
alert(result); // 1
return result * 2;
}).then(function(result) {
alert(result); // 2
return result * 2;
}).then(function(result) {
alert(result); // 4
return result * 2;
});
// ...
```
As you can see:
- Calls to `.then` can be chained -- that's because `promise.then` returns a promise.
- A value returned by `.then` becomes a result in the next `.then`.
If there's an error, it is also passed down the chain:
```js run
new Promise(function(resolve, reject) {
setTimeout(() => resolve(1), 1000);
}).then(function(result) {
throw new Error("Woops!");
}).catch(function(error) {
alert(error.message); // Woops!
});
```
The idea is :
- A callback in `.then` may return a result.
One of main purposes of promises is to make asyn
The main purpose of promises
Promises
Promises can be chained. That allows actions to follow one after another.
Here's a simple example first:
```js
let promise = new Promise(function(resolve, reject) {
setTimeout(() => resolve(""))
})
What if we want to
The main idea behind promises
Promises can be used for asynchronous tasks that eventually finish with a result or an error.
We already have `loadScript`

Binary file not shown.