반응형
약속 후 반환 값
이 질문에 이미 답변이 있습니다.
반환 메서드 후에 얻은 값을 반환하려는 자바 스크립트 함수가 있습니다. 설명보다보기 쉬움
function getValue(file){
var val;
lookupValue(file).then(function(res){
val = res.val;
}
return val;
}
약속을 지키는 가장 좋은 방법은 무엇입니까? 내가 이해 return val
했듯이 lookupValue가 완료되기 전에 반환되지만 return res.val
내부 함수에서만 반환되므로 할 수 없습니다 .
다음 선을 따라 패턴을 사용하십시오.
function getValue(file) {
return lookupValue(file);
}
getValue('myFile.txt').then(function(res) {
// do whatever with res here
});
(이것은 약간 중복되지만 실제 코드가 더 복잡하다고 확신합니다)
이를 수행하는 가장 좋은 방법은 다음과 같이 promise 반환 함수를 그대로 사용하는 것입니다.
lookupValue(file).then(function(res) {
// Write the code which depends on the `res.val`, here
});
비동기 함수를 호출하는 함수는 비동기 함수가 값을 반환 할 때까지 기다릴 수 없습니다. 왜냐하면 비동기 함수를 호출하고 나머지 코드를 실행하기 때문입니다. 따라서 비동기 함수가 값을 반환하면 해당 값을 호출 한 동일한 함수에서 수신되지 않습니다.
따라서 일반적인 아이디어는 비동기 함수 자체에서 비동기 함수의 반환 값에 의존하는 코드를 작성하는 것입니다.
참고 URL : https://stackoverflow.com/questions/22951208/return-value-after-a-promise
반응형
'program tip' 카테고리의 다른 글
C에서 restrict 키워드를 사용하는 규칙? (0) | 2020.11.09 |
---|---|
내 자식 기록이 크리스마스 트리처럼 보이는 이유는 무엇입니까? (0) | 2020.11.09 |
클래스가 다른 클래스에서 상속되었는지 테스트 (0) | 2020.11.08 |
PCH 경고 : 헤더 중지는 매크로 또는 #if 블록에있을 수 없음-Visual C ++ 2010 Express SP1 (0) | 2020.11.08 |
R에서 최대 인쇄 제한을 늘리는 방법 (0) | 2020.11.08 |