Я пытаюсь изучить асинхронное программирование с NodeJS, и у меня возникают проблемы с пониманием того, как создавать полезные функции.
Я пытаюсь сравнить результаты HTTP-запроса на получение и файла, прочитанного все внутри "экспресс" обратного вызова.Каков наилучший способ разделить две разные асинхронные операции на их собственные функции, чтобы их можно было снова использовать вместе в другом обратном вызове?
У меня это работает, когда я пишу все внутри экспресс-обратного вызова
app.get('/', (req, res) => {
axios.get('http://127.0.0.1:8080')
.then(function(response) {
var http_data = response.data
// Do more stuff with data
fs.readFile('fwversion_current', 'utf8', function(err, contents) {
var file_data = contents.trim()
// Do more stuff with data
if (http_data == file_data) {
res.send("Match")
}
else {
res.send("No Match")
}
});
});
Но я надеюсь на что-то более подобное, чтобы я мог использовать эти же операции в других местах.Я не уверен, правильный ли способ добраться туда.
function getHttpData() {
axios.get('http://127.0.0.1:8080')
.then(function(response) {
var http_data = response.data
// Do more stuff with data
return http_data
});
}
function getFileData() {
fs.readFile('fwversion_current', 'utf8', function(err, contents) {
var file_data = contents.trim()
// Do more stuff with data
return file_data
});
}
app.get('/', (req, res) => {
let http_data = await getHttpData()
let file_data = await getFileData()
if (http_data == file_data) {
res.send("Match")
}
else {
res.send("No Match")
}
});