下面的代码在redis版本3.1.2上工作,但是当我将redis libary升级到4.1.0时,回调就停止了。在本地主机上运行的REDIS服务器没有密码。我正在使用节点16 LTS。
'use strict'
import {createClient} from 'redis';
const redisClient = createClient();
redisClient.on('connect', function() {
console.log('you are now connected');
});
redisClient.on('ready', function() {
console.log('you are now ready');
});
redisClient.on('error', function(err) {
console.log(`redis error: ${err}`)
});
// added for 4.1.0 because there is no autoconnect.
await redisClient.connect();
await redisClient.set("test","value", function(err, reply) {
console.log('set complete');
});当我在Redis client 3.1.2上运行这个程序时,在set is调用之后,我得到了"set完全“。在Redis client 4.1.0上,我什么也没有得到,好像回调没有被调用一样。即使回调不触发,也会在REDIS数据库中设置该值。我用redis cli验证了这个值。没有错误消息。我确实收到了连接和就绪事件消息。
我在这里错过了什么?我很确定这是一件简单的事情,我忽略了这一点。
发布于 2022-05-07 20:43:04
节点Redis 4.x遵循的惯例,引入了许多破坏性的更改。其中之一是它使用承诺而不是回调。您可以在https://github.com/redis/node-redis上阅读所有细节。
https://stackoverflow.com/questions/72155237
复制相似问题