gpt4 book ai didi

node.js - 如何在使用redis时一个接一个地运行函数?

转载 作者:可可西里 更新时间:2023-11-01 11:25:11 24 4
gpt4 key购买 nike

我有以下代码

var arr1 =['1','2','3'];
client.sadd("arr1",arr1);
var arr2=['2','4','6'];
var arr3 =['3','6','9'];
client.sadd("arr2",arr2);
client.sadd("arr3",arr3);
client.sadd("arraylist",'arr1','arr2','arr3');
function getValue(value){
client.smembers("arraylist",function(err,data){
if(err) console.log(err);
else {
console.log(data);
data.forEach(function(res){
console.log(res);
client.smembers(res,function(err,data){
if(err) console.log(err);
else data.forEach(function(val){
if(val==value){
client.sadd("validarr",res);
console.log("stored!")
}
})
})


})

}
})
}
function randarr(){
client.srandmember("validarr",function(err,response){
if(err) console.log(err);
else console.log(response);
})
};


promise.resolve(getValue(2)).then(function()
{
console.log("hey");
promise.resolve(randarr()).then(function(){
console.log("done")
},function(err){console.log("error")})
})

我想在函数 getValue 执行完成后执行函数 randarr(),因为我想在下一个函数 randarr() 中使用保存的集合 validarr。

我尝试使用 async.series。事实证明,这两个函数同时运行并按顺序打印输出。

所以通过使用 promise.then 我面临同样的错误使用 promises 的代码输出:

hey 
done
connected
[ 'arr2','arr3',arr1']
arr2
arr3
arr1
null
stored!
stored!

函数没有按顺序执行。我应该使用什么才能一个接一个地运行函数。

有人可以帮我处理这段代码吗?

最佳答案

尝试使用 MULTI/EXEC commands 将事务命令执行到 Redis 中.

关于node.js - 如何在使用redis时一个接一个地运行函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46297077/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com