Vladimir
.then
Славик
у меня отсылается 100500 http-запросов, каждый уже запихнут в обещании
Славик
и когда их дохрена асинхронно выполняется, становится грустно
Aleksey
Почему грустно?
Славик
мне нужна альтернатива Promise.all только Promise.syncAll
Славик
100500 открытых соединений
Nikolay
Редьюсом в цепочку выстраивай и дергай.
Aleksey
Ну так делай их один за другим.
Nikolay
Или заюзай блюберд какой-нить
Славик
опытным путем было выявлено, что поочередное выполнение намного эффективнее
Славик
Славик
хотелось бы как можно меньше модификаций над кодом Promise.all
Vladimir
Если у тебя уже есть промисы, то запросы уже выполняются
Славик
я боялся, что ты это скажешь
Aleksey
let chain = Promise.resolve();
somePromises.forEach((p) => { chain = chain.then(p); })
Славик
я до последнего отказывался в это верить =\
Aleksey
Все, у тебя есть цепочка промисов которая будет вызываться один за другим.
Aleksey
После выполнения.
Vladimir
ну так не создавай эти промисы все сразу
Славик
очено похоже на то, что мне нужно
Nikolay
Ох уж эти точки с запятой
Vladimir
лучше всего выполнять не по одному, а несколько сразу
Aleksey
Иван
я бросил доту, а вы своими диалогами только провоцируете
Иван
вроде в интеллектуальном чате состоим
Aleksey
Nikolay
Предпочитаю Smite, хоть его и нет под linux.
Славик
Дима
Да
Ale
ох уж эти возвышенные беседы про мамок, мда
Ale
Aleksey
Славик
дайте пример элемента somePromiseCreators
Aleksey
() => somePromiseFunc();
Aleksey
Ага.
Aleksey
chain.then(somePromiseFunc)
Vladimir
Вот так можно параллельно несколько запускать
Vladimir
function run(iterable, concurrency) {
const it = iterable[Symbol.iterator]();
return Promise.all(
Array(concurrency).fill().map(() => {
const next = () => {
const i = it.next();
return i.done ? Promise.resolve() : i.value().then(next);
};
return next();
})
);
}
Alexander =̂• ̺ •̂=
Парни искал и не нашел. Где-то в этом чате или ссылка была или прям так писали. Как задать дефолтные параметры для объекта передаваемого в функцию?
function a( {a:1, b:2, c:{e:3}}) {...}
Aleksey
Alexander =̂• ̺ •̂=
Там было даже решение на несколько уровней вложенности в объекте
Alexander =̂• ̺ •̂=
Alexander =̂• ̺ •̂=
const test = function({a,b,c} = {a:1,b:2,c:{e:2}}) {
console.log({a,b,c});
}
Дима
const func = ({ a, b = 0 }) => {} тоже можно
Дима
Но чтобы при этом можно было вообще опустить весь конфиг, нужно так делать const func = ({ a, b = 0 }={}) => {}
Славик
спасибо
Славик
всем
Славик
за помощь
Славик
и это специально было задумано в 3 сообщения, не флуда ради
Eugene
парни, вопрос оффтоп. вы когда начинали работать, сколько месяцев работали, пока не перестало быть трудно?
Evgeny
вот уже 15 лет работаю - все еще сложно
Yan👀
👍
Yan👀
Если будет легко то велика вероятность что быстро надоест
Eugene
вот сижу, задача ясна, результат который нужно получить тоже понятен, а выстроить алгоритм очень трудно
Vladimir
Это значит что у тебя интересная работа, поздравляю
Eugene
спасибо
@aleksxor
это точно про ноду? кроме чего-то что уходит в глубокую или не очень математику или серьезную оптимизацию тут алгоритмика довольно примитивная. почти на все есть готовые либы
Eugene
на самом деле это про д3, поэтому сразу сказал, что оффтоп)
@aleksxor
и что за задача если не NDA?
Eugene
из большого количества связанных данных нарисовать график, при этом эти данные идут по иерархии
Eugene
для каждого уровня своя часть графика
@aleksxor
не ухватил сути. ну, а в чем сложность? структура данных сложная?
Gordey
если тяжко, надо декомпозировать на понятные итерации
Eugene
сам д3 нетривиален, и да, структура тоже
Gordey
сначала просто вывести данные, потом вывести в правильной структуре, добавлять усложнения пошагово
Gordey
тогда не будет каши в голове
@aleksxor
если сложности с иерархическими структурами - то базы не хватает. почитай про типы обходов. вангую хреново, но, возможно твой случай - level-order traversal. занятный алгоритм
Dmitry
Всем привет! Кто-то сталкивался с написанием нативных модулей? В целом интересует, делал ли кто-то prebuilt систему
Dmitry
Написал для своих нужд модуль, выложил в npm, но вот не могу никак настроить систему сборки. Если собирать прям на месте, получается очень большой объем директории в node_modules + кучу зависимостей надо поставить юзеру. Так как в основном этот модуль будут использовать для electron или nw.js, то важно вычищать весь мусор после сборки, так как хлама на 150мб набирается
@aleksxor
devDependencies, peerDependencies разноси чтобы лишнее не ставилось
Dmitry
Да там приходиться для сборки выкачивать с гита основную библиотеку