Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/442.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javascript中使用chainig函数时如何避免冗余?_Javascript_Chaining_Redundancy - Fatal编程技术网

在javascript中使用chainig函数时如何避免冗余?

在javascript中使用chainig函数时如何避免冗余?,javascript,chaining,redundancy,Javascript,Chaining,Redundancy,我创建了一个函数来处理更新,你可以在发布和获取更新之间进行选择 post/get的唯一不同之处是启动调用(axios.post()/axios.get()) 之后,它们会链接相同的函数(.then(),.catch()) 尽管如此,除了编写一个if/else语句并两次编写链接函数之外,我看不到其他方法,这会导致mouch代码和中断。 我怎样才能避免这种情况 这是我的密码: 更新功能( 网址, usepost=true, arg={}, 回调=()=>{}, errorcb=()=>{} ) {

我创建了一个函数来处理更新,你可以在发布和获取更新之间进行选择

post/get的唯一不同之处是启动调用(
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})
}
}