-
Notifications
You must be signed in to change notification settings - Fork 263
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
Make example code import and use the right modules in the right way #555
base: master
Are you sure you want to change the base?
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 |
---|---|---|
@@ -1,22 +1,22 @@ | ||
import Enumerator from '../enumerator'; | ||
|
||
/** | ||
`Promise.all` accepts an array of promises, and returns a new promise which | ||
`all` accepts an array of promises, and returns a new promise which | ||
is fulfilled with an array of fulfillment values for the passed promises, or | ||
rejected with the reason of the first passed promise to be rejected. It casts all | ||
elements of the passed iterable to promises as it runs this algorithm. | ||
|
||
Example: | ||
|
||
```javascript | ||
import Promise, { resolve } from 'rsvp'; | ||
import { all, resolve } from 'rsvp'; | ||
|
||
let promise1 = resolve(1); | ||
let promise2 = resolve(2); | ||
let promise3 = resolve(3); | ||
let promises = [ promise1, promise2, promise3 ]; | ||
|
||
Promise.all(promises).then(function(array){ | ||
all(promises).then(function(array){ | ||
// The array here would be [ 1, 2, 3 ]; | ||
}); | ||
``` | ||
|
@@ -28,14 +28,14 @@ import Enumerator from '../enumerator'; | |
Example: | ||
|
||
```javascript | ||
import Promise, { resolve, reject } from 'rsvp'; | ||
import { all, resolve, reject } from 'rsvp'; | ||
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. ^ |
||
|
||
let promise1 = resolve(1); | ||
let promise2 = reject(new Error("2")); | ||
let promise3 = reject(new Error("3")); | ||
let promises = [ promise1, promise2, promise3 ]; | ||
|
||
Promise.all(promises).then(function(array){ | ||
all(promises).then(function(array){ | ||
// Code here never runs because there are rejected promises! | ||
}, function(error) { | ||
// error.message === "2" | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -7,13 +7,13 @@ import { | |
} from '../-internal'; | ||
|
||
/** | ||
`Promise.race` returns a new promise which is settled in the same way as the | ||
`race` returns a new promise which is settled in the same way as the | ||
first passed promise to settle. | ||
|
||
Example: | ||
|
||
```javascript | ||
import Promise from 'rsvp'; | ||
import { Promise, race } from 'rsvp'; | ||
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. Let's instead document |
||
|
||
let promise1 = new Promise(function(resolve, reject){ | ||
setTimeout(function(){ | ||
|
@@ -27,20 +27,20 @@ import { | |
}, 100); | ||
}); | ||
|
||
Promise.race([promise1, promise2]).then(function(result){ | ||
race([promise1, promise2]).then(function(result){ | ||
// result === 'promise 2' because it was resolved before promise1 | ||
// was resolved. | ||
}); | ||
``` | ||
|
||
`Promise.race` is deterministic in that only the state of the first | ||
`race` is deterministic in that only the state of the first | ||
settled promise matters. For example, even if other promises given to the | ||
`promises` array argument are resolved, but the first settled promise has | ||
become rejected before the other promises became fulfilled, the returned | ||
promise will become rejected: | ||
|
||
```javascript | ||
import Promise from 'rsvp'; | ||
import { Promise, race } from 'rsvp'; | ||
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. Let's instead document |
||
|
||
let promise1 = new Promise(function(resolve, reject){ | ||
setTimeout(function(){ | ||
|
@@ -54,7 +54,7 @@ import { | |
}, 100); | ||
}); | ||
|
||
Promise.race([promise1, promise2]).then(function(result){ | ||
race([promise1, promise2]).then(function(result){ | ||
// Code here never runs | ||
}, function(reason){ | ||
// reason.message === 'promise 2' because promise 2 became rejected before | ||
|
@@ -65,9 +65,9 @@ import { | |
An example real-world use case is implementing timeouts: | ||
|
||
```javascript | ||
import Promise from 'rsvp'; | ||
import { Promise, race } from 'rsvp'; | ||
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. Let's instead document |
||
|
||
Promise.race([ajax('foo.json'), timeout(5000)]) | ||
race([ajax('foo.json'), timeout(5000)]) | ||
``` | ||
|
||
@method race | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -4,11 +4,11 @@ import { | |
} from '../-internal'; | ||
|
||
/** | ||
`Promise.reject` returns a promise rejected with the passed `reason`. | ||
`reject` returns a promise rejected with the passed `reason`. | ||
It is shorthand for the following: | ||
|
||
```javascript | ||
import Promise from 'rsvp'; | ||
import { Promise } from 'rsvp'; | ||
|
||
let promise = new Promise(function(resolve, reject){ | ||
reject(new Error('WHOOPS')); | ||
|
@@ -24,9 +24,9 @@ import { | |
Instead of writing the above, your code now simply becomes the following: | ||
|
||
```javascript | ||
import Promise from 'rsvp'; | ||
import { reject } from 'rsvp'; | ||
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. Let's instead document |
||
|
||
let promise = Promise.reject(new Error('WHOOPS')); | ||
let promise = reject(new Error('WHOOPS')); | ||
|
||
promise.then(function(value){ | ||
// Code here doesn't run because the promise is rejected! | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -4,11 +4,11 @@ import { | |
} from '../-internal'; | ||
|
||
/** | ||
`Promise.resolve` returns a promise that will become resolved with the | ||
`resolve` returns a promise that will become resolved with the | ||
passed `value`. It is shorthand for the following: | ||
|
||
```javascript | ||
import Promise from 'rsvp'; | ||
import { Promise } from 'rsvp'; | ||
|
||
let promise = new Promise(function(resolve, reject){ | ||
resolve(1); | ||
|
@@ -22,9 +22,9 @@ import { | |
Instead of writing the above, your code now simply becomes the following: | ||
|
||
```javascript | ||
import Promise from 'rsvp'; | ||
import { resolve } from 'rsvp'; | ||
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. Let's instead document |
||
|
||
let promise = RSVP.Promise.resolve(1); | ||
let promise = resolve(1); | ||
|
||
promise.then(function(value){ | ||
// value === 1 | ||
|
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.
In our docs we should ensure
import { X } from 'rsvp';
should be eitherPromise
or utility methods unique to RSVP. Theimport { resolve, all , reject, race } from 'rsvp'
are odd, and their is no reason for RSVP to encourage non-standard promise usage patterns.Let's use
all
fromPromise
, as that will make it easier for people to move to native.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.
@stefanpenner your example and my changes are only about
all
but in fact your logic applies forreject
,resolve
,race
and such as well, doesn't it? My idea was to make the imports consistent by importingall
the same way as the others were already imported in those examples but I see that it would make even more sense the other way around. In fact I haven't even seen something that RSVP exports which is unique to it but I will look into it once more. I guess in any case I should update the docs to be consistent for all native Promise functions, right?