angular/packages
JiaLiPassion 9e39bb655c fix(zone.js): should continue to executue listeners when throw error (#41562)
Close #41522

`zone.js` patches event listeners and run all event listeners together, if
one event handler throws error, the listeners afterward may not be invoked.

Reproduction:

```
export class AppComponent implements AfterViewInit {
  @ViewChild('btn') btn: ElementRef;
  title = 'event-error';

  constructor(private ngZone: NgZone) {}

  ngAfterViewInit() {
    this.ngZone.runOutsideAngular(() => {
      this.btn.nativeElement.addEventListener('click', () => {
        throw new Error('test1');
      });
      this.btn.nativeElement.addEventListener('click', () => {
        console.log('add eventlistener click');
      });
    });
  }
}
```

Until now no Angular users report this issue becuase in the `ngZone`, all
error will be caught and will not rethrow, so the event listeners afterward
will still continue to execute, but if the event handlers are outside of `ngZone`,
the error will break the execution.

This commit catch all errors, and after all event listeners finished invocation,
rethrow the errors in seperate `microTasks`, the reason I am using `microTask` here
is to handle multiple errors case.

PR Close #41562
2021-04-19 08:38:45 -07:00
..
animations fix(animations): allow animations on elements in the shadow DOM (#40134) 2021-04-15 12:45:53 -07:00
bazel build: ng_package no longer generate minified UMDs (#41425) 2021-04-14 10:43:08 -07:00
benchpress fix(dev-infra): update type castings for JSON.parse usage (#40710) 2021-02-09 10:48:43 -08:00
common fix(common): viewport scroller not finding elements inside the shadow DOM (#41644) 2021-04-15 12:47:08 -07:00
compiler fix(compiler): non-literal inline templates incorrectly processed in partial compilation (#41583) 2021-04-16 09:33:05 -07:00
compiler-cli build: update dependency-graph to version 0.11.0 (#41665) 2021-04-19 08:23:52 -07:00
core fix(animations): allow animations on elements in the shadow DOM (#40134) 2021-04-15 12:45:53 -07:00
docs docs(di): fix typo in advanced di doc (#36634) 2020-05-01 09:50:28 -07:00
elements refactor: update $schema and id keywords (#41574) 2021-04-14 18:50:32 -07:00
examples docs: improve description, examples of DecimalPipe's digitsInfo parameter (#40714) 2021-02-26 15:42:29 -08:00
forms feat(forms): update supported range of node versions (#41544) 2021-04-14 09:40:18 -07:00
language-service fix(compiler-cli): autocomplete literal types in templates. (#41456) (#41645) 2021-04-16 08:54:28 -07:00
localize build: update glob to version 7.1.6 (#41667) 2021-04-19 08:24:27 -07:00
misc/angular-in-memory-web-api release: bump angular-in-web-memory-api package to 0.12.0 (#41487) 2021-04-07 09:35:17 -07:00
platform-browser feat(platform-browser): update supported range of node versions (#41544) 2021-04-14 09:40:18 -07:00
platform-browser-dynamic feat(platform-browser-dynamic): update supported range of node versions (#41544) 2021-04-14 09:40:18 -07:00
platform-server feat(platform-server): update supported range of node versions (#41544) 2021-04-14 09:40:18 -07:00
private/testing build: update .bazelversion (#40579) 2021-01-26 11:35:54 -08:00
router fix(router): Only retrieve stored route when reuse strategy indicates it should reattach (#30263) 2021-04-15 11:33:02 -07:00
service-worker feat(service-worker): update supported range of node versions (#41544) 2021-04-14 09:40:18 -07:00
upgrade feat(upgrade): update supported range of node versions (#41544) 2021-04-14 09:40:18 -07:00
zone.js fix(zone.js): should continue to executue listeners when throw error (#41562) 2021-04-19 08:38:45 -07:00
BUILD.bazel build: replace @types/trusted-types dep with minimal type defs (#39211) 2020-10-15 09:08:00 -07:00
circular-deps-test.conf.js fix(platform-webworker): remove platform-webworker and platform-webworker-dynamic (#38846) 2020-09-30 09:13:59 -04:00
empty.ts build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
goog.d.ts build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
license-banner.txt docs: update year (#40925) 2021-02-22 12:37:40 -08:00
README.md docs: add doc reference to npm package readme (#33911) 2019-11-20 14:46:23 -08:00
system.d.ts build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
tsconfig-build-no-strict.json refactor(core): ensure compatibility with typescript strict flag (#30993) 2019-07-18 14:21:25 -07:00
tsconfig-build.json refactor(core): ensure compatibility with typescript strict flag (#30993) 2019-07-18 14:21:25 -07:00
tsconfig-test.json refactor: fix typescript strict flag failures in all tests (#30993) 2019-07-18 14:21:26 -07:00
tsconfig.json fix(platform-webworker): remove platform-webworker and platform-webworker-dynamic (#38846) 2020-09-30 09:13:59 -04:00
types.d.ts build: replace @types/trusted-types dep with minimal type defs (#39211) 2020-10-15 09:08:00 -07:00

Angular

The sources for this package are in the main Angular repo. Please file issues and pull requests against that repo.

Usage information and reference details can be found in Angular documentation.

License: MIT