2017-09-19 3 views
0

나는 다음과 같은 코드를 가지고redis를 사용하면서 함수를 차례로 실행하는 방법은 무엇입니까?

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")}) 
 
})

난 다음에 저장된 설정 validarr를 사용하려면 때문에이 기능 getValue의 전체 실행 후 함수 randarr()를 실행하려면 function randarr().

나는 async.series를 사용해 보았습니다. 두 기능이 동시에 실행 중이며 출력을 순서대로 인쇄하고있는 것으로 나타났습니다.

그래서 사용하여 내가 약속을 사용하여 동일한 오류 코드의 출력에 직면하고있다 promise.then : 내가 기능을 실행하는 inorder를 사용해야하는 기능이 order.What에서 실행되지 않아요

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

을 하나씩.

누군가이 코드를 도와 줄 수 있습니까?

답변

관련 문제