在javascript中使用chainig函数时如何避免冗余?
我创建了一个函数来处理更新,你可以在发布和获取更新之间进行选择 post/get的唯一不同之处是启动调用(在javascript中使用chainig函数时如何避免冗余?,javascript,chaining,redundancy,Javascript,Chaining,Redundancy,我创建了一个函数来处理更新,你可以在发布和获取更新之间进行选择 post/get的唯一不同之处是启动调用(axios.post()/axios.get()) 之后,它们会链接相同的函数(.then(),.catch()) 尽管如此,除了编写一个if/else语句并两次编写链接函数之外,我看不到其他方法,这会导致mouch代码和中断。 我怎样才能避免这种情况 这是我的密码: 更新功能( 网址, usepost=true, arg={}, 回调=()=>{}, errorcb=()=>{} ) {
axios.post()
/axios.get()
)
之后,它们会链接相同的函数(.then()
,.catch()
)
尽管如此,除了编写一个if/else
语句并两次编写链接函数之外,我看不到其他方法,这会导致mouch代码和中断。
我怎样才能避免这种情况
这是我的密码:
更新功能(
网址,
usepost=true,
arg={},
回调=()=>{},
errorcb=()=>{}
) {
控制台日志(arg);
如果(使用邮政){
axios
.post(“https://example.com/“+url,arg)
。然后(响应=>{
//做事
回调();
})
.catch(错误=>{
//做一些错误的事情
errorcb();
});
}否则{
axios
.get(“example.com/”+url,{params:arg})
。然后(响应=>{
//做事
回调();
})
.catch(错误=>{
//做一些错误的事情
errorcb();
});
}
}
(我不想将代码导出到函数)好吧,有两种方法可以做到这一点: 第一个是使用您的方式,使用回调。您只需要将请求存储在一个变量中,然后在此变量上使用“then/catch”
函数更新(
网址,
usepost=true,
arg={},
回调=()=>{},
errorcb=()=>{}
) {
请求;
如果(使用邮政){
请求=axios.post(“https://example.com/“+url,arg)
}否则{
request=axios.get(“example.com/”+url,{params:arg})
}
请求。然后(响应=>{
//做事
回调();
})
.catch(错误=>{
//做一些错误的事情
errorcb();
});
}
第二种方法,在我看来是一种更好的方法,就是简单地使函数异步并返回请求(这是一种承诺)。使用这种方式,您可以使用承诺轻松管理异步内容
异步函数更新(
网址,
usepost=true,
arg={}
) {
如果(使用邮政){
返回axios.post(“https://example.com/“+url,arg)
}否则{
返回axios.get(“example.com/”+url,{params:arg})
}
}