如何在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 );
};
创建一个接受回调的高阶函数,并在.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);