angular - 在 Promise 循环中,如何等待请求响应?
问题描述
我正在尝试创建一个发送请求的循环。
但是,我想在发送下一个请求之前等待收到请求的答复。我该如何进行?
private start(): Promise<string> {
return new Promise((resolve, reject) => {
for (let j = 0, p = Promise.resolve(); j < count; j++) {
p = p.then(_ => new Promise<null>(res =>
setTimeout(() => {
if (j === (count - 1)) {
resolve();
} else {
this.http.get();
res();
}
}, 1000)
));
}
});
}
感谢您的帮助
解决方案
感谢大家的帮助,最后,我根据@Capricorn的回复写了这个
private start(): Promise<string> {
return new Promise((resolve, reject) => {
for (let j = 0, p = Promise.resolve(); j < 10; j++) {
p = p.then(() => new Promise<null>((res) => {
this.get().then(() => res());
}));
}
});
}
private get(): Promise<string> {
return new Promise((resolve, reject) => {
setTimeout(() => {
alert('hello');
resolve();
}, 3000);
});
}
推荐阅读
- ios - iOS SwiftUI 函数返回一些未显示在 UI 中的视图
- quarkus - 如何为 GraphQL 请求定义 HTTP 过滤器?
- r - 评估 R 中的二项式多项式表达式
- mysql - 使用 UUID_Short 更改字段失败?
- javascript - 如何正确存储相互引用的对象?(圆形结构)
- pytorch - 如何用两个或更多输入训练 Pytorch CNN
- html - 如何使标题在手机上保持粘性?
- javascript - JS 语音合成到 Node.JS 可读流
- python - 如何使用 pygraphviz 增加点图中节点之间的间距?
- regex - 这个正则表达式模式的目的是什么?