на выходе пустой массив остается
```
let arr: Array<any> = [];
simpleParser(idHeader + all.body, (_err: any, mail: any) => {
arr.push({
subject: mail.subject,
from: mail.from,
date: mail.date,
text: mail.text,
attachments: mail.attachments
});
});
```
ты асинхронные операции делаешь внутри парсера?
нет, это все что делается внутри парсера, а сам парсер находится в асинхронной функции, или добавление в массив тоже нужно асинхронно делать?
покажи где ты проверяешь, что массив пустой
await imaps.connect(config).then(function (connection: any) { .... simpleParser(idHeader + all.body, (_err: any, mail: any) => { arr.push({ subject: mail.subject, from: mail.from, date: mail.date, text: mail.text, attachments: mail.attachments }); }); }); console.log('arr: ', arr);
да, ты проверяешь массив до того, как он заполняется
Там поддержки промисов не завезли?
получается парсер тоже асинхронным нужно делать?
Если это mailparser, то он на стримах, вся его работа асинхронна
проще вернуть из него объект и пушить его без колбека
Обсуждают сегодня