gpt4 book ai didi

javascript - Redis Javascript 异步函数

转载 作者:可可西里 更新时间:2023-11-01 10:53:32 26 4
gpt4 key购买 nike

我有一个 ID 数组,我需要获取每个 ID 的详细信息。

我现在有这个。

const redis = require('redis');

const redisClient = redis.createClient(process.env.REDIS_PORT, process.env.REDIS_HOST);

const arrayList = [
{ id: 3444 },
{ id: 3555 },
{ id: 543666 },
{ id: 12333 },
];

async function getDetails(element) {
await redisClient.hgetall(element.id, (err, user) => {
if (err) {
console.log('Something went wrong');
// Handle Error
return err;
}
console.log('Done for User');
return user;
});
}


arrayList.forEach((element) => {
console.log('element');
await getDetails(element).then((res) => {
// Do Something with response for each element
});
});

这是我现在得到的回应。它不是异步的。请问我做错了什么。

element
element
element
element
Done for User
Done for User
Done for User
Done for User

最佳答案

所以在 async/await 中,事情是如何进行的,您创建一个异步函数,并在该函数内等待其他操作完成。您可以在不等待的情况下调用该异步函数,或者将其(函数调用)包装在另一个异步函数中。

arrayList.forEach((element) => {
console.log('element');
let returnedPromise= getDetails(element);
console.log("Promise after getDetails function", returnedPromise);
});

此代码更改应该可以解决错误。

关于javascript - Redis Javascript 异步函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49748304/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com