我正在尝试从我的 redis 数据库中获取所有 hget 值。但是数组日志保持为空。你们可以看看吗?谢谢
getAllHMSets = (cb) ->
client.keys "log:*", (err, logKeys) ->
if not err and logKeys isnt null
logs = new Array()
i = 0
while i < logKeys.length
client.hgetall logKeys[i], (err, log) ->
if not err and log isnt null
logs.push log
i++
if logs.length is logKeys.length
cb logs if typeof cb is "function"
最佳答案
我认为您的代码有两个问题:
你应该用更地道的 CoffeeScript 编写它
您对 hgetall 的调用也必须使用回调,否则您的数组将永远不会被填充。
getAllHMSets = (cb) ->
client.keys "log:*", (err, logKeys) ->
if not err and logKeys isnt null
logs = []
for value in logKeys
client.hgetall logKeys[i], (err, log) ->
if not err and log isnt null
logs.push log
if logs.length is logKeys.length
cb logs if typeof cb is "function"
关于node.js - Array.push,数组保持为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15467564/