cheatsheets/promise.md

60 lines
955 B
Markdown

---
title: Promises
category: JavaScript
---
Based on the [Promise API reference][promise] (mozilla.org).
{:.brief-intro.center}
[promise]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise
### Creating promises
```js
new Promise(function (ok, err) {
doStuff(function () {
if (success) { ok(); }
else { err(); }
});
})
```
### Consuming promises
```js
promise
.then(okFn, errFn)
.catch(errFn)
```
### Multiple promises
```js
var promises = [
promise1(), promise2(), ...
]
// succeeds when all succeed
Promise.all(promises)
.then(function (results) {
});
// succeeds when one finishes first
Promise.race(promises)
.then(function (result) {
});
```
### Converting other promises
```js
return Promise.resolve("result");
return Promise.resolve(promise);
return Promise.resolve(thenable);
return Promise.reject("reason");
Promise.resolve($.get('http://google.com'))
.then(...)
```