【发布时间】:2020-03-06 00:48:29
【问题描述】:
我从几天前开始学习 Java 中的 Javascript 和 Vue,但无法通过 async/await 解决我的 Node、Express 应用程序的问题。下面的代码从请求中接收股票符号列表,然后通过循环检查任何符号的详细信息是否已缓存在 redis 中。
var controllers = {
getCurrentPrice: function(req, res) {
var symbolsArray = req.body.symbols;
var results = [];
var tmpArray = [];
_(symbolsArray).each( async function(symbol, iPos) {
client.hget("realtime", symbol, function(err, reply) {
if(reply) {
await results.push(reply);
} else {
await tmpArray.push(symbol);
}
console.log("reply", reply);
});
});
console.log("Results so far ", results);
if( !tmpArray || tmpArray.length == 0 ) { //will be fetching these now }
}
}
在内部控制台语句中获取输出,但在外部控制台语句中没有。我尝试通过网络查看一些解决方案,例如通过 redis-co 来承诺 redis 调用,但无法完全解决它。
【问题讨论】:
-
可能是你的promise失败了,你试过加
.catch吗?
标签: javascript express redis