Лучшие практики для обработки больших данных с помощью JS fetch? - PullRequest
0 голосов
/ 24 октября 2018

Серверу требуется время (около 2 минут) для экспорта больших данных JSON, в то время как у меня произошла ошибка тайм-аута на стороне клиента до ответа сервера.Я немного погуглил, но никак не могу продлить тайм-аут или продолжить после тайм-аута.

fetch(url).then(resolve,reject);

Ответы [ 2 ]

0 голосов
/ 24 октября 2018

Несколько вещей, которые вы можете сделать здесь ..

1) Получите фрагментированные данные, например, если вы отображаете эти данные в таблице, поищите что-нибудь DataTables на стороне сервера.

2) Если вы все еще хотите, чтобы все в одном запросе, попробуйте использовать индексирование БД, чтобы ускорить его

3) Увеличьте время ожидания сервера.

0 голосов
/ 24 октября 2018

Я предполагаю, что вы используете fetch в узле.

Попробуйте использовать stream для получения данных в виде кусков.Примером этого может быть:

fetch(url)
    .then(res => {
        return new Promise((resolve, reject) => {
            const dest = fs.createWriteStream('some/file/path');
            res.body.pipe(dest);
            res.body.on('error', err => {
                reject(err);
            });
            dest.on('finish', () => {
                resolve();
            });
            dest.on('error', err => {
                reject(err);
            });
        });
    });

Вы можете использовать поток по своему усмотрению.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...