이 코드는 루프 만 처음으로 실행됩니다. 어떻게 해결할 수 있는지 말해주십시오. 나는 루프의 다음 값을 실행하기 전에 get_profile_image() 함수를 실행해야한다.이 코드는 for 루프에서만 처음 실행된다. Q 라이브러리를 사용하여 for 루프에 대한 약속을 적용하는 방법은 무엇입니까?
1
A
답변
1
function response(){
var deferred = q.defer();
for(var i=0; i < results.length; i++){
var from_name = results[i].from_name;
var request_from = results[i].request_from;
var empty = new Array();
friend_requests.push(empty);
friend_requests[i].push(from_name);
friend_requests[i].push(request_from);
var new_array = friend_requests[i];
function get_profile_image(){
var profile_image_defer = q.defer();
var dir = "./public/img/users_directory/"+request_from;
fs.readdir(dir, function(err, files) {
files.forEach(function(f) {
var file = f.substr(0, f.lastIndexOf('.'));
if(file === "profile_image"){
profile_image = "../img/users_directory/"+email+ "/" +f;
new_array.push(profile_image);
}
});
profile_image_defer.resolve(profile_image);
});
return profile_image_defer.promise;
}
get_profile_image().then(function(){
deferred.resolve(friend_requests); //This runs only for first time i.e. i=0
});
return deferred.promise;
}
}
response().then(function(){
console.log(friend_requests);
res.send(friend_requests);
})
results.map()
를 사용해보십시오.
지금은 불가능한 동일한 함수에서 여러 번 반환하려고합니다. 음, 생성자에서는 가능하지만 종류는 동일하지 않습니다.
results.map()
과 함께 사용할 수있는 것보다 result
요소를 사용하고 약속을 반환하는 함수가있는 경우 Promise.all()
을 사용하여 모든 약속을 기다리는 것이 좋습니다.
코드에 문제가 너무 많아 하나의 수정을 가리킬 수 없습니다. 처음부터 작성해야 할 것입니다. 당신이 염두에 두어야 할 점은 같은 함수에서 return
을 여러 번 사용할 수 없다는 것입니다. 왜냐하면 첫 번째 리턴은 함수에서 반환 될 것이고 함수는 다른 것을 실행하지 않을 것이기 때문입니다. return 문은 심지어 생성자를 종료합니다.
관련 문제
- 1. app.get에 약속을 적용하는 방법은 무엇입니까?
- 2. for 루프에 대한 이해
- 3. for 루프 루프에 대한
- 4. for 루프에 대한 NSUInteger oddities
- 5. for 루프에 대한 매개 변수 입력 | Java
- 6. jquery를 사용하여 무한 루프에 애니메이션을 적용하는 방법은 무엇입니까?
- 7. for 루프에 대한 기본 정보
- 8. for 루프에 대한 도움이 필요합니다.
- 9. for 루프에 대한 올바른 대안입니까?
- 10. 중첩 for 루프에 대한 설명
- 11. for 루프에 대한 읽기 '제거'?
- 12. for 루프에 buttonlocation을 추가하는 방법은 무엇입니까?
- 13. for 루프에 지연을 추가하는 방법은 무엇입니까?
- 14. python for 루프에 대한 값을 전달하는 방법은 무엇입니까? ++ C/C에서
- 15. bash의 명령 줄에서`for` 루프에 대한 목록을 지정하는 방법은 무엇입니까?
- 16. for 루프에 대한 흐름 제어를 반환하는 방법은 무엇입니까?
- 17. Promises 및 Q 라이브러리를 사용하여 변환하는 방법
- 18. NodeJS의 For 루프에 대한 약속 방법
- 19. for 루프에 배열 목록을 쓰는 방법은 무엇입니까?
- 20. for 루프에 배열을 추가하는 방법은 무엇입니까?
- 21. for 루프에 Dispatcher 타이머를 추가하는 방법은 무엇입니까?
- 22. if 문을 for 루프에 추가하는 방법은 무엇입니까?
- 23. 루프에서 약속을 처리하는 방법은 무엇입니까?
- 24. Thread.sleep을 사용하여 for 루프에 지연을 추가하는 방법은 무엇입니까?
- 25. for 루프에 대한 목록의 데이터 바인딩.
- 26. Q 약속 - 사용 방법은 무엇입니까?
- 27. iText 라이브러리를 사용하여 PDF로 표에 배경 이미지를 적용하는 방법은 무엇입니까?
- 28. MathDotNet 라이브러리를 사용하여 제로 위상 필터를 적용하는 방법은 무엇입니까?
- 29. AWS headObject와 함께 약속을 사용하는 방법은 무엇입니까? 콜백과 약속을 지원
- 30. 컨테이너 목록, for 루프에 대한 오류가 발생합니다.
for 루프 내부로 돌아 오는 이유 - 한 번만 실행되는 이유입니다. –
여러 가지 방법으로 읽을 수없고 잘못되어 코드를 표시하는 대신 문제를 설명하려고하면 더 좋을 것입니다 ... – Jaime