gpt4 book ai didi

javascript - Angular 2等待 promise 和可观察的解决

转载 作者:行者123 更新时间:2023-11-30 11:43:54 26 4
gpt4 key购买 nike

在我的 accountService 中,我有一个对话框要求用户输入用户名/密码,并返回一个 promise 。如果他们单击关闭而不是关闭,并且验证器在单击关闭之前需要数据,那么我想使用返回可观察值的数据登录。

loginModal() : boolean {

this.dpDialogService.input(
'Login',
[
{
label: 'Username/Email',
form: 'username',
data: '',
validators: [Validators.required],
validatorMsg: 'Username is required.'
},
{
label: 'Password',
form: 'password',
data: '',
validators: [Validators.required],
validatorMsg: 'Password is required.',
type: 'password'
},
]
).then(
close => {
this.login({username: close.username.value, password: close.password.value}).subscribe(
loginResult => {
return true;
},
errorResult => {
this.dpDialogService.error('Invalid username/password.');
return false;
}
)
},
dismiss => {
return false;
}
);
}

如何从函数中返回这个 bool 值。我猜我必须使用 promise ,但不确定如何嵌套它们。

最佳答案

如果 .subscribe 不返回 promise ,那么您需要创建一个 promise ,根据 .subscribe 的结果解析为 true/false

我假设返回的 promise 需要始终解决,从不拒绝(基于 dismiss => 代码

).then(
close => {
return new Promise((resolve, reject) => {
this.login({username: close.username.value, password: close.password.value}).subscribe(
loginResult => {
resolve(true);
},
errorResult => {
this.dpDialogService.error('Invalid username/password.');
resolve(false);
}
)
})
},
dismiss => {
return false;
}
);

关于javascript - Angular 2等待 promise 和可观察的解决,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41657502/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com