You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
2.5 KiB
Markdown
62 lines
2.5 KiB
Markdown
|
6 years ago
|
# Zone.js
|
||
|
|
|
||
|
|
[](https://travis-ci.org/angular/zone.js)
|
||
|
|
[](https://cdnjs.com/libraries/zone.js)
|
||
|
|
|
||
|
|
Implements _Zones_ for JavaScript, inspired by [Dart](https://www.dartlang.org/articles/zones/).
|
||
|
|
|
||
|
|
> If you're using zone.js via unpkg (i.e. using `https://unpkg.com/zone.js`)
|
||
|
|
> and you're using any of the following libraries, make sure you import them first
|
||
|
|
|
||
|
|
> * 'newrelic' as it patches global.Promise before zone.js does
|
||
|
|
> * 'async-listener' as it patches global.setTimeout, global.setInterval before zone.js does
|
||
|
|
> * 'continuation-local-storage' as it uses async-listener
|
||
|
|
|
||
|
|
# NEW Zone.js POST-v0.6.0
|
||
|
|
|
||
|
|
See the new API [here](./dist/zone.js.d.ts).
|
||
|
|
|
||
|
|
Read up on [Zone Primer](https://docs.google.com/document/d/1F5Ug0jcrm031vhSMJEOgp1l-Is-Vf0UCNDY-LsQtAIY).
|
||
|
|
|
||
|
|
## What's a Zone?
|
||
|
|
|
||
|
|
A Zone is an execution context that persists across async tasks.
|
||
|
|
You can think of it as [thread-local storage](http://en.wikipedia.org/wiki/Thread-local_storage) for JavaScript VMs.
|
||
|
|
|
||
|
|
See this video from ng-conf 2014 for a detailed explanation:
|
||
|
|
|
||
|
|
[](//www.youtube.com/watch?v=3IqtmUscE_U)
|
||
|
|
|
||
|
|
## See also
|
||
|
|
* [async-listener](https://github.com/othiym23/async-listener) - a similar library for node
|
||
|
|
* [Async stack traces in Chrome](http://www.html5rocks.com/en/tutorials/developertools/async-call-stack/)
|
||
|
|
* [strongloop/zone](https://github.com/strongloop/zone) (Deprecated)
|
||
|
|
* [vizone](https://github.com/gilbox/vizone) - control flow visualizer that uses zone.js
|
||
|
|
|
||
|
|
## Standard API support
|
||
|
|
|
||
|
|
zone.js patched most standard web APIs (such as DOM events, `XMLHttpRequest`, ...) and nodejs APIs
|
||
|
|
(`EventEmitter`, `fs`, ...), for more details, please see [STANDARD-APIS.md](STANDARD-APIS.md).
|
||
|
|
|
||
|
|
## Nonstandard API support
|
||
|
|
|
||
|
|
We are adding support to some nonstandard APIs, such as MediaQuery and
|
||
|
|
Notification. Please see [NON-STANDARD-APIS.md](NON-STANDARD-APIS.md) for more details.
|
||
|
|
|
||
|
|
## Examples
|
||
|
|
|
||
|
|
You can find some samples to describe how to use zone.js in [SAMPLE.md](SAMPLE.md).
|
||
|
|
|
||
|
|
## Modules
|
||
|
|
|
||
|
|
zone.js patches the async APIs described above, but those patches will have some overhead.
|
||
|
|
Starting from zone.js v0.8.9, you can choose which web API module you want to patch.
|
||
|
|
For more details, please
|
||
|
|
see [MODULE.md](MODULE.md).
|
||
|
|
|
||
|
|
## Promise A+ test passed
|
||
|
|
[](https://promisesaplus.com/)
|
||
|
|
|
||
|
|
## License
|
||
|
|
MIT
|