Название этого вопроса, вероятно, вводит в заблуждение. У меня возникли проблемы с тем, чтобы обернуть голову вокруг этой концепции. Я хочу передать все аргументы в функцию, но вызвать ее с этими аргументами позднее .
В настоящее время я делаю что-то вроде этого:
function copyRecords(userId, options) {
const getRecordsWrapper = (userId, options) => () => getRecords(userId, options);
abstractionService = new MyAbstractionService(getRecordsWrapper);
...etc
}
Здесь я бы сохранил и позже вызвал функцию:
class MyAbstractionService {
constructor(getRecords) {
this.getRecords = getRecords;
}
performSomeAction() {
return this.getRecords();
}
}
Мне нужно сделать это, потому что getRecords
принимает разные аргументы в разных областях, и я хочу абстрагировать их в один сервис без необходимости передавать кучу аргументов в сервис. Это будет грязно, так как я должен сделать это и для некоторых других функций.
Я правильно думаю об этом? Есть ли другой способ сделать это, кроме функции, возвращающей другую функцию, которая возвращает мою функцию? Кроме того, не уверен, что это важно, но getRecords
возвращает Promise
. Я не хочу начинать работать над Promise
, пока не попал в службу абстракции позже.