node.js - 异步等待在打字稿节点中不起作用
问题描述
以下代码按预期使用超代理调用。阻止每个回调。在代码中 sendRequest 没有被阻止;我在程序执行结束时看到空数组。
任何解决问题的帮助将不胜感激。谢谢
process();
async function process() {
let data = await dataPreparation(collection);
console.log("data", data);
}
async function sendRequest(endPath, request) {
return await baseUrl.post(endPath)
.set('Accept', 'application/json')
.set('Content-Type', 'application/json')
.send(request)
}
async function dataPreparation(collection) {
let output = [];
await collection.each(async (items) => {
let tagName: string = items.name;
await items.content.each(async (item) => {
let rawRequest = item.request;
let endPath = item.endPath;
let response = await sendRequest(endPath, rawRequest);
output.push({ 'request': rawRequest, 'endPath': endPath, 'response': response.status });
})
});
return output;
}
解决方案
从您的问题陈述中,我了解到您对 foreach 回调有问题,我已将其转换为 for 循环,我认为它应该可以工作。
async function dataPreparation(collection) {
let output = [];
for (var items of collection) {
let tagName: string = items.name;
for (var item of items.content) {
let rawRequest = item.request;
let endPath = item.endPath;
let response = await sendRequest(endPath, rawRequest);
output.push({ 'request': rawRequest, 'endPath': endPath, 'response': response.status });
}
};
return output;
}
推荐阅读
- angular - 窗口打开时未触发 Firebase Web 推送通知
- xaml - 如何在 UWP 中调整 NavigationView 和 SplitView 的大小
- plc - TwinCAT 中数组的多变量分配
- python - django后台404.感觉URL配置错误
- c# - 如何将输出添加到 NUnit HTML 报告
- c++ - 如何在 C++ 中将“double”值返回到小数点后两位
- clips - 我应该如何在 CLIPS 中编写此规则?
- extjs - Extjs 网格的自定义 IP 排序
- php - 如何在订阅者注册到 wordpress 时自动创建 wordpress 页面
- react-native - 无法在 react-native-photo-editor 中获得编辑后的图像路径