API fetch 코드를 async , await 문을 이용하여 수정해주세요. 해당 코드들은 에러가 났을 경우를 대비해서 적절히 처리가 되어있어야 합니다.

필수 API 의 status code 에 따라 에러 메시지를 분리하여 작성해야 합니다.

const API_ENDPOINT =
  "<http://localhost:4001>";

**const request = async(url) => {

  try{
    const result = await fetch(url);
    // console.dir(result.status);  

    if(result.status === 200){
      return result.json();
    }else{
      throw{        //throw는 catch로 보낸다.
        result : result, 
        msg : '요청실패'
      }
    }
  }catch(err){
    console.log(err);
    alert(err.msg);
    return {
      data : null,
    }
  }
}**

const api = {
  fetchCats: keyword => {
    return **request**(`${API_ENDPOINT}/api/cats/search?q=${keyword}`);
  },
  fetchCatsPage: (keyword, page) => {
    return **request**(`${API_ENDPOINT}/api/cats/search?q=${keyword}&page=${page}`);
  },
  fetchRandomCats : () => {
    return **request**(`${API_ENDPOINT}/api/cats/random50`);
  },
  fetchCatDetail: id => {
    return **request**(`${API_ENDPOINT}/api/cats/${id}`);
  },
};
**const REQUEST_ERROR = {
    '500' : { msg : '요청실패' },
}**

const request = async(url) => {

  try{
    const result = await fetch(url);
    // console.dir(result.status);  
    if(result.status === 200){
      return result.json();
    }else{
      **throw REQUEST_ERROR[result.status];   // REQUEST_ERROR.500 일**
    }
  }catch(err){
    console.log(err);
    alert(err.msg);
    return {
      data : null,
    }
  }
}