Closed
Description
Is this a regression?
- Yes, this behavior used to work in the previous version
The previous version in which this bug was not present was
12.2.0
Description
When opening multiple dialogs in a short amount of time, some of them do not open
Reproduction
The bug can be noticed with the example below, when clicking the "Open Fast" button.
import { Component, TemplateRef, ViewChild } from '@angular/core';
import { MatDialog } from '@angular/material/dialog';
@Component({
selector: 'app-root',
template: `
<button (click)="openFast()">Open Fast</button>
<button (click)="openSlow()">Open Slow</button>
<ng-template let-data #template>
{{data.message}}
<button mat-dialog-close>close</button>
</ng-template>
`
})
export class AppComponent {
@ViewChild("template") template?: TemplateRef<any>;
constructor(private matDialog: MatDialog){}
openFast(){
this.open('1');
setTimeout(() => this.open('2'), 1);
setTimeout(() => this.open('3'), 50);
setTimeout(() => this.open('4'), 100);
setTimeout(() => this.open('5'), 150);
setTimeout(() => this.open('6'), 200);
}
openSlow(){
this.open('1');
setTimeout(() => this.open('2'), 300);
setTimeout(() => this.open('3'), 600);
setTimeout(() => this.open('4'), 900);
setTimeout(() => this.open('5'), 1200);
setTimeout(() => this.open('6'), 1500);
}
private open(message: string){
this.matDialog.open(this.template!, {
disableClose: true,
data: { message }
});
}
}
Expected Behavior
"Open fast" button should open 6 dialogs, just like the "Open slow" button.
Actual Behavior
The "Open fast" button opens only 2 dialogs.
On most attempts it opens (1) and (5), but in some cases (1) and (6) are open.
Environment
- Angular: 13.0.0
- CDK/Material: 13.0.0
- Browser(s): Chrome
- Operating System (e.g. Windows, macOS, Ubuntu): Windows