Как использовать управляющие структуры дескрипторов с помощью библиотеки функционального программирования fluture
Я работаю над переводом следующего примера кода на функциональный подход:
let [state, cities] = await Promise.all([States.find({name: name}).limit(1).exec(), Cities({stateName: name}).exec()]);
state = convertToAnObject(state);
if (state && await state.hasRequiredPopulation()) {
return cities;
} else {
throw new NotFoundError("There are no cities for " + name + " that match the necessary requirements.");
}
У меня возникли проблемы с пониманием того, как это должно быть преобразовано в конвейер и т. Д. С учетом Promise.all, структуры управления (if-then-else) и обработки ошибок. Конечно, кажется, что я бы использовал encaseP для Promise.all, но после этого это сбивает с толку.
Может ли кто-нибудь предоставить для этого случая пример перевода fluture?