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 (불가능)