- Notifications
You must be signed in to change notification settings - Fork3.9k
Promises basics#3285
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 ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
base:master
Are you sure you want to change the base?
Uh oh!
There was an error while loading.Please reload this page.
Promises basics#3285
Changes fromall commits
File filter
Filter by extension
Conversations
Uh oh!
There was an error while loading.Please reload this page.
Jump to
Uh oh!
There was an error while loading.Please reload this page.
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'sa`finally` in promises also. | ||
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. maybe:
| ||
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 matterif 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 becomessettled 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 thatsettles when the loading is complete. The outer code can add handlers (subscribing functions) to it using `.then`: | ||
```js run | ||
function loadScript(src) { | ||