Ich habe den folgenden Codewie man Funktionen nacheinander ausführt, während man redis benutzt?
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){
\t client.smembers("arraylist",function(err,data){
\t \t if(err) console.log(err);
\t \t else {
\t \t \t console.log(data);
\t \t data.forEach(function(res){
\t \t \t console.log(res);
\t \t \t client.smembers(res,function(err,data){
\t \t \t \t if(err) console.log(err);
\t \t \t \t else data.forEach(function(val){
\t \t \t \t \t if(val==value){
\t \t \t \t \t \t client.sadd("validarr",res);
\t \t \t \t \t console.log("stored!")
\t \t \t \t \t }
\t \t \t \t })
\t \t \t })
\t \t \t
\t \t
\t \t })
\t \t
\t \t }
\t })
}
function randarr(){
\t client.srandmember("validarr",function(err,response){
\t \t if(err) console.log(err);
\t \t else console.log(response);
\t })
};
promise.resolve(getValue(2)).then(function()
{
\t console.log("hey");
\t promise.resolve(randarr()).then(function(){
\t \t console.log("done")
\t },function(err){console.log("error")})
})
Ich mag die Funktion randarr() nach der vollständigen Ausführung der Funktion getValue, auszuführen, weil ich den gespeicherten Satz validarr im nächsten verwenden möchte Funktion randarr().
ich versuchte mit async.series. Es stellt sich heraus, dass beide Funktionen gleichzeitig ausgeführt wurden und die Ausgabe der Reihe nach gedruckt wurde.
So unter Verwendung promise.then ich bin vor dem gleichen Fehler Der Ausgang für den Code mit Versprechungen:
hey
done
connected
[ 'arr2','arr3',arr1']
arr2
arr3
arr1
null
stored!
stored!
Die Funktionen werden nicht in order.What ausgeführt bekommen soll ich inorder verwenden, um die Funktionen auszuführen einer nach demanderen.
Kann mir jemand mit diesem Code helfen?