typeScript 打破 return Promise<any> 的方法调用循环
typeScript Break a loop of method call that return Promise<any>
我有一个循环调用一个方法,该方法 returns 一个 Promise<any>
类型的对象 如果从该方法返回给我的结果是正确的,我想打破循环。我有 break
但循环继续:
for (let item of List) {
let currentItem = item .split(',');
if (flag != '0')
{
break;
}
this.service.getList(currentItem [0]).then(res => {
if (res != null) {
for (let i of res) {
if (i.serviceName == name) {
flag = selectIp;
break;
}
}
}
}).catch(res => {
});
}
服务中的代码:
getList(ip: string): Promise<any> {
const apiUrl = environment.url + '/getData';
return this.httpClient.post<any>(apiUrl, body)
.toPromise();
}
break
不工作。即使 flag != '0'
和 i.serviceName == name'
循环仍在继续
您可以使用此代码。使您的函数异步,我们在下面使用 await。
for (let item of List) {
let currentItem = item.split(',');
if (flag != '0')
{
break;
}
const res = await this.service.getList(currentItem [0]);
if (res != null) {
for (let i of res) {
if (i.serviceName == name) {
flag = selectIp;
break;
}
}
}
}
我有一个循环调用一个方法,该方法 returns 一个 Promise<any>
类型的对象 如果从该方法返回给我的结果是正确的,我想打破循环。我有 break
但循环继续:
for (let item of List) {
let currentItem = item .split(',');
if (flag != '0')
{
break;
}
this.service.getList(currentItem [0]).then(res => {
if (res != null) {
for (let i of res) {
if (i.serviceName == name) {
flag = selectIp;
break;
}
}
}
}).catch(res => {
});
}
服务中的代码:
getList(ip: string): Promise<any> {
const apiUrl = environment.url + '/getData';
return this.httpClient.post<any>(apiUrl, body)
.toPromise();
}
break
不工作。即使 flag != '0'
和 i.serviceName == name'
您可以使用此代码。使您的函数异步,我们在下面使用 await。
for (let item of List) {
let currentItem = item.split(',');
if (flag != '0')
{
break;
}
const res = await this.service.getList(currentItem [0]);
if (res != null) {
for (let i of res) {
if (i.serviceName == name) {
flag = selectIp;
break;
}
}
}
}