Я создаю небольшой API, который извлекает данные и выполняет задачи на нем (используя async), сохраняет некоторые из этих данных в массиве с помощью push, а затем показывает его клиенту с ответом Hapi().API с помощью Hapi & Async - Как очистить массив/выполнить что-то сразу после «ответа» или при каждом новом «получить»?
Я ищу, чтобы удалить мой массив (например, используя arrayname.length = 0) сразу после того, как сервер отправил ответ клиенту.
Текущий код следовать этой логике:
let data = []
server.route({
method: 'GET',
path: '/api/{data}',
handler: function (request, reply) {
async.parallel([
function(callback) {
// fetch some data, work with it and then add it to our array using push
data.push ({ // example data
bla:'blabla',
number:'10'
});
callback();
},
function(callback) { // another time (...)
data.push ({
bla:'blabla',
number:'2'
});
callback();
}
],
function(err) { // This is the final callback, sort data and send it using reply
data.sort(function (a, b) {
return a.number - b.number
})
reply(data)
console.log(request.params.data)
})
}
});
server.start((err) => {
if (err) {
throw err;
}
console.log(`Server running at: ${server.info.uri}`);
});
С текущего кода, если я обновить мою страницу, данные добавляется к уже существующему массиву данных.
Я пробовал несколько часов и не нашел способ удалить этот массив сразу после ответа (данных).
Есть ли способ сделать это, или мне придется вложить параллельные асинхронные функции с помощью строки async и выполнить опорожнение таким образом? (Хейвену удалось преуспеть либо + переполнение звука).
Есть ли способ просто выполнить что-то, когда был вызван «ответ» или когда появился новый «get», так что каждый клиент может иметь только данные, созданные его запросом, а не также данные, которые были в массив раньше?
Спасибо!
Возможно создать массив внутри 'handler'? Каждый раз, когда вы набираете маршрут, он будет инициализирован как пустой массив. Лично я не вижу смысла в том, чего вы пытаетесь достичь здесь ... – piotrbienias
У меня такое чувство, что я пробовал это, и это создало проблему, но, очевидно, это не так. Очень просто, не знаю, что случилось с моим беспокойным умом. Большое спасибо за ваш ответ! Если сообщение это как ответ, я могу принять его, если вы хотите, @piotrbienias –