Я создаю индикатор выполнения для приложения реагирования, которое я создаю, и я хочу отправить обратно проценты клиенту для моего индикатора выполнения. В экспрессе у меня есть настройки API, которые разрешают множество обещаний. Я хочу рассчитать выполненные обещания и обнаружил следующую функцию, которая будет отслеживать, какие обещания разрешены.
function allProgress(proms, progress_cb) {
let d = 0;
progress_cb(0);
for (const p of proms) {
p.then(() => {
d++;
progress_cb((d * 100) / proms.length);
});
}
return Promise.all(proms);
}
Я хочу затем обернуть мой массив обещаний в эту функцию, а затем отправить обратно процент обещаний, которые были выполнены, чтобы я мог построить свой индикатор прогресса.
app.post('/api/v1/posts', async (req, res) => {
try {
const postData = req.body.postData;
const results = await allProgress(getPostsArray(postData), (p) => {
// I want to send back the percentage in this callback
console.log(p);
res.write(`${p}`);
})
res.send([].concat(...results))
} catch (error) {
console.log(error);
}
})
Когда я пытаюсь использовать res.write в моем обратном вызове, кажется, что он не работает. Это правильный подход для использования res.write здесь в моем обратном вызове.