Я объявил 'услугу':
// myService.js
export default {
someService: _.debounce(
function someService(rule, value, callback) {
myApi.get(
`check-input/${value}`,
)
.then((response) => {
if (response.data.valid) {
callback();
} else {
callback(new Error('Invalid value'));
}
})
.catch(() => {
callback(new Error('Internal error. Please try later.'));
});
},2000)};
Я хотел бы использовать эту услугу два раза независимо одновременно.
Я называю эту службу следующим образом:
const ValidatorA = (rule, value, callback) => {
const serviceA = myService.someService(rule, value, callback);
return serviceA;
};
const ValidatorB = (rule, value, callback) => {
const serviceB = myService.someService(rule, value, callback);
return serviceB;
};
ValidatorA
и ValidatorB
связаны с различными входами в шаблоне и работают почти одновременно.(Задержка в 1 с)
Чего я хотел бы добиться, так это то, что ValidatorA
и ValidatorB
будут вызывать myService.someService
независимо, поэтому должно быть два вызова одновременно.В настоящее время он вызывает только один раз (с ValidatorB
, как он вызывается через секунду).Я предполагаю, что ValidatorB
перезаписывает вызов от ValidatorA
.
Создание двух одинаковых методов решает эту проблему, однако я считаю, что есть более элегантное решение.Object.assign
или _deepClone
также не решают проблему.
Спасибо!