Javascript 在Meteor中每次方法调用前后运行代码

Javascript 在Meteor中每次方法调用前后运行代码,javascript,meteor,client-side,meteor-methods,Javascript,Meteor,Client Side,Meteor Methods,我正在运行几个方法调用,需要向最终用户显示加载模式,并在方法重新返回结果时隐藏它。我一直在寻找一种方法,在不重复代码的情况下为每个方法运行这个调用前代码和调用后代码 swal({ title: "Saving...", onBeforeOpen: () => swal.showLoading() }); Meteor.call("method", {/*params*/}, (err, res) => { //Do something swal.hide(); });

我正在运行几个方法调用,需要向最终用户显示加载模式,并在方法重新返回结果时隐藏它。我一直在寻找一种方法,在不重复代码的情况下为每个方法运行这个调用前代码和调用后代码

swal({
  title: "Saving...",
  onBeforeOpen: () => swal.showLoading()
});
Meteor.call("method", {/*params*/}, (err, res) => {
 //Do something
 swal.hide();
});
我希望能够运行这2个swal代码,而无需在每次调用中编写该代码。
有没有办法配置Meteor.call在调用方法之前和之后执行某些操作?

您可以将代码抽象到一个包装函数中,该包装函数接受您的方法名、参数和回调函数作为参数:

constcall=({title,name,params,callback})=>{
游泳({
标题:标题,,
onBeforeOpen:()=>swal.showLoading()
});
Meteor.call(名称、参数、(错误、恢复)=>{
回调(err,res);
swal.hide();
});
}
这里请注意,
callback
不是“真正的”回调,而是放在语句中,从“真正的”回调本身接收参数作为参数

例如,使用以下方法:

调用({
标题:“保存…”,
名称:'方法',
参数:{/*params*/},
回调:(err,res)=>{
log(“我在隐藏之前执行”);
}
});
如果您经常需要此功能,可以将其放在自己的文件中,并使用
导出
将其提供给其他文件/模块