
따라서 동시에 두 가지 일을 처리할 수 없고, 한 번에 하나의 작업만이 가능하다. 그래서 동기적 방식이 아닌 비동기(asynchronous)로 작업을 처리한다. setTimeout함수 예가 대표적이다.
console.log('a')
function x() {
  console.log('x')
}
setTimeout(x, 3000)
console.log('b')
// 결과
// a
// b
// x	async getUser() {
    const result = await Axios.get("/users/auth").then((res) => {
      console.log("[Auth]get userData:", res.data);
      if (res.data) {
        return res.data;
      } else {
        alert("fail to get userData");
      }
    });
    return result;
  };// react는 useCallback이용
	function getUserData(callback) {
	  let user;
	
	  setTimeout(function () {
	    user = "angela";
	    callback(user);
	  }, 2000);
	}
	
	getUserData(function (user) {
	  console.log(user);
	});useEffect 내부에서는 async, await가 적용이 안되므로 queueMicrotask를 이용한다.
	useEffect(() => {
	    queueMicrotask(async () => {
	      let userdata = await user.getUser();
	      setUserData(userdata);
	    });
	  }, [setUserData]);