Ваша функция выполняет две функции:
- преобразовать элементы в массив запроса.
- Отправить все запросы в этом массиве.
Объединение этих двух вещей в одну функцию имело бы смысл , если бы функция каждый раз выполняла одну и ту же вещь , но часть 1 в вашей функции по-разному выполняет разные вызовы (prop1 против prop2 и getRequestData против getOtherData ) поэтому нет смысла помещать его в функцию.
Чтобы прояснить это, предположим, что вы оставили часть 1, вы можете решить отправить функцию селектора в качестве параметра, который даст вам следующее:
RunX((item) => {return getRequestData(item.prop1)});
RunX((item) => {return getOtherData(item.prop2)});
Что немного усложняет следующий код:
let requests = this.items.map((item) => {return getRequestData(item.prop1)});
SubmitRequests(requests);
let requests = this.items.map((item) => {return getOtherData(item.prop2)});
SubmitRequests(requests);
Если логика обработки действительно повторяется, извлечь метод getProp1Requests ();
Если вы все равно решите пойти по этому пути, отправьте функцию выбора:
RunX (селектор: (Элемент) => RequestData) {
}
Но вы, вероятно, не хотите использовать item [prop], так как это отнимает проверку типов.