Edit in JSFiddle

<body>
<h1 id="text"></h1>
<script>
function asyncTask(){
  return new Promise(function(resolve, reject){
    var req = new XMLHttpRequest();
    req.open('GET', 'https://api.flickr.com/services/rest/?method=flickr.photos.getRecent&api_key=46a247f7ad0611a92fa3bf67a931c5db&format=json&nojsoncallback=1', true);
    req.onreadystatechange = function(){
      if (this.readyState == 4) {
        resolve(); // 전송이 완료되면 Promise를 resolve
      }
    }
    req.send();
  });
}

var h1 = document.getElementById('text');
h1.innerHTML += 'One<br>';
asyncTask().then(function(){ // 이 콜백은 비동기 작업이 끝난 이후 다시 메인 쓰레드에서 호출됩니다.
  h1.innerHTML += 'Two<br>';
});
h1.innerHTML += 'Three<br>';
</script>
</body>