가져오기 API 단순화 시도

3895 단어 webdevjavascript
가져오기 API는 훌륭하고 사용하기가 매우 쉽지만 필요에 따라 가져오기를 단순화하려고 시도했습니다. 나는 API나 함수를 필요에 따라 최대한 단순화하는 것을 좋아합니다. 다음은 fetch API에 대해 단순화하고 싶었던 것입니다.
  • 성공을 위한 하나의 함수와 모든 오류에 대한 하나의 함수
  • 자동 JSON 또는 텍스트 구문 분석
  • 쉽게 본문을 보내고 쉽게 헤더 데이터를 변경

  • 단순화하기 위해 약속이 있는 가져오기 예제부터 시작하겠습니다.

    fetch('https://example.com')
    .then(x => x.text())
    .then(y => alert(y))
    .catch(err => console.error(err));
    

    이제 이것이 내가 할 수 있기를 원하는 것입니다.

    fetcher('https://example.com')(alert)(console.error)
    

    이상해 보이지만 모두 우리가 원하는 것을 수행하는 함수를 반환하는 함수를 반환하는 함수일 뿐입니다. fetcher가 fetch가 아니기 때문에 fetcher라고 합니다. 다음은 위의 사항을 충족하는 데 사용할 수 있는 코드입니다.

    function fetcher(url, options){
      options = {
        parse: 'text',
        ...options
      }
    
      return (done) => {
        return (error) => {
          try{
            fetch(url).then(x => x[options.parse]()).then(done).catch(error);
          } catch(err) {
            error(err);
          }
        }
      }
    }
    

    이것은 이 아이디어의 시작일 뿐입니다. 나는 나중에 요청 본문과 헤더와 같은 것을 옵션에 추가할 것이지만 지금은 이것이 시작입니다.

    좋은 웹페이지 즐겨찾기