在我的函数的确定时刻,我打开了一个材料对话框,我需要等待对话框的回答才能继续我的函数,但在我选择确认对话框之前,函数正在运行。
我试着做些事情:
我的默认函数:
alteraDadosProduto(){
let confirmouAtualizacaoProduto = this.verificaProdutoPossuIAnuncio();
if(confirmouAtualizacaoProduto == false){
return ;
}
... functions continue
我的对话框功能:
verificaProdutoPossuIAnuncio(): boolean{
if(this.produtosConfirmadosAnuncio[0].anuncio.length == 0){
return true;
}else{
const dialogRef = this.dialog.open(DialogConfirmacaoAtualizacaoAnuncioComponent);
dialogRef.afterClosed().subscribe(result => {
if(result == true){
return true;
}else{
return false;
}
})
}
}
我怎么能等待订阅的结果继续我的alteraDadosProduto功能?谢谢
5条答案
按热度按时间z0qdvdin1#
你应该订阅look at here
mqxuamgl2#
Sory cant writte commnet(low rep).我不完全理解你.但是如果你需要在对话框关闭后将数据传递给
result
,你可以例如:然后你就可以像在你的代码中一样轻松地操作结果了
对不起,如果我不完全理解你。
az31mfrm3#
如果你为angular mat-dialog-close传递一个函数,它总是会在对话框打开时调用该函数。因此,代替函数调用,为mat-dialog-close分配一个属性。
nkcskrwz4#
在你的组件中声明:
你的默认函数是:
您的对话框功能:
y1aodyip5#
你可以从rxjs使用lastValueFrom