Document m.deferred removal
This commit is contained in:
parent
6a63cb702d
commit
aff78cf9ca
1 changed files with 39 additions and 2 deletions
|
|
@ -27,6 +27,7 @@ If you are migrating, consider using the [mithril-codemods](https://www.npmjs.co
|
||||||
- [Accessing route params](#accessing-route-params)
|
- [Accessing route params](#accessing-route-params)
|
||||||
- [Preventing unmounting](#preventing-unmounting)
|
- [Preventing unmounting](#preventing-unmounting)
|
||||||
- [`m.request`](#mrequest)
|
- [`m.request`](#mrequest)
|
||||||
|
- [`m.deferred` removed](#mdeferred-removed)
|
||||||
- [`m.sync` removed](#msync-removed)
|
- [`m.sync` removed](#msync-removed)
|
||||||
- [`xlink` namespace required](#xlink-namespace-required)
|
- [`xlink` namespace required](#xlink-namespace-required)
|
||||||
- [Nested arrays in views](#nested-arrays-in-views)
|
- [Nested arrays in views](#nested-arrays-in-views)
|
||||||
|
|
@ -502,9 +503,45 @@ Additionally, if the `extract` option is passed to `m.request` the return value
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## `m.deferred` removed
|
||||||
|
|
||||||
|
`v0.2.x` used its own custom asynchronous contract object, exposed as `m.deferred`, which was used as the basis for `m.request`. `v1.x` uses Promises instead, and implements a [polyfill](promises.md) in non-supporting environments. In situations where you would have used `m.deferred`, you should use Promises instead.
|
||||||
|
|
||||||
|
### `v0.2.x`
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
var greetAsync = function() {
|
||||||
|
var deferred = m.deferred();
|
||||||
|
setTimeout(function() {
|
||||||
|
deferred.resolve("hello");
|
||||||
|
}, 1000);
|
||||||
|
return deferred.promise;
|
||||||
|
};
|
||||||
|
|
||||||
|
greetAsync()
|
||||||
|
.then(function(value) {return value + " world"})
|
||||||
|
.then(function(value) {console.log(value)}); //logs "hello world" after 1 second
|
||||||
|
```
|
||||||
|
|
||||||
|
### `v1.x`
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
var greetAsync = new Promise(function(resolve){
|
||||||
|
setTimeout(function() {
|
||||||
|
resolve("hello");
|
||||||
|
}, 1000);
|
||||||
|
});
|
||||||
|
|
||||||
|
greetAsync()
|
||||||
|
.then(function(value) {return value + " world"})
|
||||||
|
.then(function(value) {console.log(value)}); //logs "hello world" after 1 second
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## `m.sync` removed
|
## `m.sync` removed
|
||||||
|
|
||||||
`m.sync` has been removed in favor of `Promise.all`
|
Since `v1.x` uses standards-compliant Promises, `m.sync` is redundant. Use `Promise.all` instead.
|
||||||
|
|
||||||
### `v0.2.x`
|
### `v0.2.x`
|
||||||
|
|
||||||
|
|
@ -570,7 +607,7 @@ If a vnode is strictly equal to the vnode occupying its place in the last draw,
|
||||||
|
|
||||||
## `m.startComputation`/`m.endComputation` removed
|
## `m.startComputation`/`m.endComputation` removed
|
||||||
|
|
||||||
They are considered anti-patterns and have a number of problematic edge cases, so they no longer exist in v1.x
|
They are considered anti-patterns and have a number of problematic edge cases, so they no longer exist in v1.x.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue