异步/等待方法:
Ids = ['abc','lmn','xyz']
Ids.forEach(function (resId){
console.log('inside loop');
async function operation(){
var curObj = await redisClient.get('key1');
console.log('done waiting');
}
}
另一个函数的回调方法:
function operation(cb) {
redisClient.get('key1', cb);
}
operation(function(){
console.log('inside operation');
});
我想等到curObj变量设置好并依次执行代码以打印“完成等待”。我使用了async / await,但似乎无法正常工作。然后,我使用了具有相同get方法的回调。我使用的是ioredis库。
我做错了什么?
答案 0 :(得分:2)
异步/等待approuch应该看起来像这样:
(async() => {
const Ids = ['abc','lmn','xyz'];
const operation = async (){
var curObj = await redisClient.get('key1');
console.log('done waiting');
}
for (const resId of Ids){
console.log('inside loop');
await operation();
}
})()
async
循环中没有forEach
,但是您可以将其与for...of
一起使用。
请注意,我正在使用IIFE函数,例如,如何在没有其他上下文的情况下使用async / await。