多个Promise
使用Node-redis操作 redis 时,redis 命令的执行结果在 nodejs 中都体现为回调。
redis.set('foo','bar')
redis.get('foo',(err,reply) => {
console.log(reply);//bar
})
用回调的形式得到命令执行的结果,对于单条命令还可以应对,当需要连续执行多条命令时,便会遇到“callback hell”,甚至,需要对数组中的每个值都执行一次redis命令,并一次性获得所有执行结果用于后续操作时,使用回调不单单会使代码变得难以读懂,执行结果甚至和预期不同,导致运行结果有逻辑错误。
Promise
代表了未来某个将要发生的事件,Promise 对象将异步操作以同步操作的流程表现出来,避免层层嵌套的回调函数。
Promise对象的详细解释,参考JavaScript标准参考教程 或者 ECMAScript 6 文档,此处只说明所遇到的问题。
页面中表格数据的最后一列,需要挨个从 redis 中查找出来。
function func (id) {
return new Promise((resolve, reject) => {
db.hgetall(