Вы можете абстрагировать код в функцию-оболочку, которая принимает имя вашего метода, параметры и функцию обратного вызова в качестве аргументов:
const call = ({ title, name, params, callback }) => {
swal({
title: title,
onBeforeOpen: () => swal.showLoading()
});
Meteor.call(name, params, (err, res) => {
callback(err, res);
swal.hide();
});
}
Обратите внимание, что callback
не является "реальным" обратным вызовом, а просто помещается внутри операторов и получает аргументы от самого "реального" обратного вызова в качестве аргументов.
Используйте метод, например, так:
call({
title: 'Saving...',
name: 'method',
params: {/*params*/},
callback: (err, res) => {
console.log('I am executed before hide');
}
});
Если вам очень нужна эта функция, вы можете поместить ее в собственный файл и использовать export
, чтобы сделать ее доступной для других файлов / модулей.