У меня есть функция javascript (node.js v12) asyn c, которая используется для получения ресурса. Сначала он обращается к кешу, чтобы проверить, кэширован ли ресурс. Если это так, то возвращается кэшированный ресурс. Если это не так, он получает ресурс из пути, помещает его в кеш, а затем возвращает ресурс. Функция для помещения ресурса в кеш - asyn c. Однако нет необходимости ждать, пока это завершится, чтобы вернуть ресурс. Вызовет ли это какие-либо проблемы, если вы вернетесь из функции, пока обещание в функции еще не решено? Мне даже не нужно знать, была ли функция ошибочной, потому что даже если ресурс не может быть помещен в кеш, я все равно хочу вернуть ресурс. Basi c пример ниже:
async function getResource(path) {
const cachedResource = await getResourceFromCache(path).catch(logError);
if (cachedResource) {
return cachedResource;
} else {
const resource = await getResourceFromPath(path);
putResourceInCache(path, resource).catch(logError); // This is an async function but I did not use await
return resource;
}
}
app.post('/test', async (req, res) => {
// Code ...
const resource = await getResource(path));
// Code ...
return res.status(200).send(value);
});