약속을 사용하여 비동기 코드를 실행하려고합니다. 여기서 문제는 콜백의 실행이 완료되기 전에도 응답이 호출된다는 것입니다.노드 JS에서 약속 안 함
참고 : 루프 내에서 콜백 함수를 작성했습니다. 루프가 완료되면 배열을 인쇄해야합니다. 그러나 루프가 종료되기 전에 배열이 인쇄됩니다.
router.post('/run',function(req,res){
var code=req.body.code;
var lang=req.body.lang;
var input=req.body.input;
var result=[];
switch(lang){
case 1:
calculate(code,input).then(function(res){
console.log(res);
});
}
});
function calculate(code,input){
var result=[]
return new Promise((resolve,reject)=>{
for(let i=0;i<input.length;i++){
compile_run.runPython(code, input[i], function (stdout, stderr, err) {
if(!err){
console.log(stdout);
result.push(stdout);
}
else{
console.log(err);
}
});
}
resolve(result);
})
}
I 말했듯 케이스 문의 문 CONSOLE.LOG (입술) '[]'인쇄하고 다음과 같이
My question is :
1) Is it correct to use a callback within a loop?
2)If not,then what are the other methods of repeating a callback function.
코드이다.
도와주세요!
미리 감사드립니다.
_compile_run.runPython_이란 무엇입니까? – TGrif
주어진 코드를 특정 언어로 컴파일하기위한 모듈입니다. (코드와 입력 모두 프론트 엔드에서 수신됩니다.) – Raman
컴파일이 완료되기 전에 _ 결과를 확인하고 있습니다. – TGrif