javascript - 无法等待 Javascript 中的异步调用
问题描述
我给 AWS 打了一个电话,我得到了响应,回调看起来像这样:
const handleResponse = async (response) => {
var responseBody = "";
response.on("data", async function (chunk) {
responseBody += chunk;
});
response.on("end", async function (chunk) {
return responseBody;
});
return responseBody;
};
我目前的尝试是用这样的等待来调用这个函数:
const getLoadIds = async (payload) => {
// console.log(payload);
const resp = await handleResponse(payload)
console.log(resp) <--- this is undefined
}
如何从 response.on("end") 调用中获取响应?
这是原始的调用者代码:
var client = new AWS.HttpClient();
try {
await client.handleRequest(request, null, async (res) => fn(res));
} catch (err) {
fn
是一个别名getLoadIds
解决方案
你可能想要类似的东西
const handleResponse = (response) => {
return new Promise((resolve) => {
var responseBody = "";
response.on("data", function (chunk) {
responseBody += chunk;
});
response.on("end", function (chunk) {
resolve(responseBody);
});
});
};
更新:thanx @Andrew Li,注意到答案中的错误问题
推荐阅读
- ruby-on-rails - 发生错误:nil:NilClass 的未定义方法“+”
- python - Ubuntu Memory Error Python Processed Killed 然而,根据 HTOP 的说法,它使用了 5% 的 RAM
- django - 如何在使用 UserRegisterForm 时停止 django 以自动激活用户
- python - 使用 python 导入/批量加载到 MS Access
- node.js - 无法获取 req.user.isAdmin
- html - Bootstrap 的置顶导致导航栏不可滚动
- delphi - 使用动态数组时 RAD Server for Linux 上的内存泄漏
- python - 如何确定天气函数中使用的默认参数值?
- dataframe - 带有架构的 pyspark.sql SparkSession load() :架构中的非字符串类型字段使所有值都为空
- android - 什么时候创建sqlite数据库的备份在android pie中创建了旧文件?