https 로 데이터받아오려는데 https로 요청하는 메소드 내부에서는 데이터를 저장하고 사용할 수 있는데, 통신인 끝난 이후에 대해서는 데이터가 저장되지 않습니다.
예를들어,
----------------------------------------
let data = '';
https.request(options, (res)=>{
...
data = something; // save some data
}).end();
console.log(data); // resut : null;
----------------------------------------
이와같은 경우에는 data가 초기값인 null이됩니다.
이유는 request가 async로 동작하여 console 보다 항상 나중에 수행됩니다.
한 가지 편법으로 request를 한번 더 요청해서 sync를 맞추면 data에 값이 저장되긴하는데, 더 좋은 방법은 없을까요?
현재 사용해 본 방법들은 아래와 같습니다.
1. 얉은/깊은 복사 (싱크문제라 당연히 불가)
2. sleep (안먹힘)
3. asyn, await (불가능)
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.