-
Notifications
You must be signed in to change notification settings - Fork 3.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Promises basics #3285
base: master
Are you sure you want to change the base?
Promises basics #3285
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -214,15 +214,15 @@ The call `.catch(f)` is a complete analog of `.then(null, f)`, it's just a short | |
|
||
## Cleanup: finally | ||
|
||
Just like there's a `finally` clause in a regular `try {...} catch {...}`, there's `finally` in promises. | ||
Just like there's a `finally` clause in a regular `try {...} catch {...}`, there's a `finally` in promises also. | ||
|
||
The call `.finally(f)` is similar to `.then(f, f)` in the sense that `f` runs always, when the promise is settled: be it resolve or reject. | ||
|
||
The idea of `finally` is to set up a handler for performing cleanup/finalizing after the previous operations are complete. | ||
|
||
E.g. stopping loading indicators, closing no longer needed connections, etc. | ||
|
||
Think of it as a party finisher. No matter was a party good or bad, how many friends were in it, we still need (or at least should) do a cleanup after it. | ||
Think of it as a party finisher. No matter if a party was good or bad, how many friends were in it, we still need (or at least should) do a cleanup after it. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. i prefer the solution at #3390 |
||
|
||
The code may look like this: | ||
|
||
|
@@ -291,7 +291,7 @@ Sometimes, it might be that a promise is already settled when we add a handler t | |
In such case, these handlers just run immediately: | ||
|
||
```js run | ||
// the promise becomes resolved immediately upon creation | ||
// the promise becomes settled immediately upon creation | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. disagree, 'resolve' goes well with use of |
||
let promise = new Promise(resolve => resolve("done!")); | ||
|
||
promise.then(alert); // done! (shows up right now) | ||
|
@@ -324,7 +324,7 @@ function loadScript(src, callback) { | |
|
||
Let's rewrite it using Promises. | ||
|
||
The new function `loadScript` will not require a callback. Instead, it will create and return a Promise object that resolves when the loading is complete. The outer code can add handlers (subscribing functions) to it using `.then`: | ||
The new function `loadScript` will not require a callback. Instead, it will create and return a Promise object that settles when the loading is complete. The outer code can add handlers (subscribing functions) to it using `.then`: | ||
|
||
```js run | ||
function loadScript(src) { | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
maybe: