2017-09-19 1 views
0

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?

Antwort