0

如何在javascript中折射代码

  const handleClick1 = () => {
    axios.get("someurl.com")
    .then((res) => {
          console.log(JSON.stringify(res, null, 2));
          ----- execute something different 
        })
    .catch((err) => console.log(err))
  };

  const handleClick2 = () => {
    axios.get("someurl.com")
    .then((res) => {
          console.log(JSON.stringify(res, null, 2));
          ----- execute something different 
        })
    .catch((err) => console.log(err))
  };


  const handleClick3 = () => {
    axios.get("someurl.com")
    .then((res) => {
          console.log(JSON.stringify(res, null, 2));
          ----- execute something different 
        })
    .catch((err) => console.log(err))
  };

我想做一个函数

const axios_related = (----- execute something different) => {
    axios.get("someurl.com")
    .then((res) => {
          console.log(JSON.stringify(res, null, 2));
          ----- execute something different 
        })
    .catch((err) => console.log(err))
  };
}

并替换为

const handleClick1 = () => {
    ----- execute something different {
      -- step1
      -- step2
      -- step3
      ---
      -- stepn      
    }

    axios_related(----- execute something different );
  };

  const handleClick2 = () => {
    ----- execute something different {
      -- step1
      -- step2
      -- step3
      ---
      -- stepn      
    }

    axios_related(----- execute something different );
  };


  const handleClick3 = () => {
    ----- execute something different {
      -- step1
      -- step2
      -- step3
      ---
      -- stepn      
    }
    axios_related(----- execute something different );
  };
4

1 回答 1

0

创建一个接受回调并在.then.

const makeHandleClick = (callback) => {
  axios.get("someurl.com")
    .then((res) => {
          console.log(JSON.stringify(res, null, 2));
          callback(res);
        })
    .catch((err) => console.log(err))
};
const handleClick1 = makeHandleClick(callback1);
const handleClick2 = makeHandleClick(callback2);
const handleClick3 = makeHandleClick(callback3);
于 2021-09-06T04:33:19.350 回答