我想检查一下,如果observable Collection中存在clientName,但由于异步运行,我根本不会得到“false”返回。如何将我的函数转换为同步 - 我不想使用回调 - 只返回true / false
checkIfClientNameIsUnique(clientName: string): boolean {
var isUnique = true;
this.getAll()
.subscribe(clients => {
clients.forEach(client => {
if (clientName == client.name) {
isUnique = false
}
})
});
return isUnique
}
答案 0 :(得分:0)
我看到三个选项:
3.如果您向ES6发射,则可以使用async await关键字,它将如下所示。
checkIfClientNameIsUnique(clientName: string): Promise<boolean> {
return new Promise((resolve, reject) => {
this.getAll()
.subscribe(clients => {
for (let client of clients) {
if (clientName == client.name) {
resolve(false);
break;
}
}
resolve(true);
});
});
}
// ...
async main() {
let isUnique = await checkIfClientNameIsUnique(name);
}