#firebase #google-cloud-functions
#firebase #google-cloud-функции
Вопрос:
В документах firebase говорится, что вы должны вернуть обещание после асинхронной операции
«Чтобы вернуть данные после асинхронной операции, верните обещание».
https://firebase.google.com/docs/functions/callable#sending_back_the_result
В примере они используют then для возврата сообщения клиенту после завершения асинхронной операции. Но как насчет того, когда я использую await? Могу ли я просто вернуть объект или мне нужно обернуть его внутри обещания?
const response = await fetch('ttps://sandbox.itunes.apple.com/verifyReceipt', options);
if (response.status === 200)
return {
status: 200,
message: "Subscription verification successfuly!"
}
или
if (response.status === 200)
return Promise.resolve({
status: 200,
message: "Subscription verification successfuly!"
});
Ответ №1:
Асинхронные функции возвращают обещания неявно. Таким образом, нет необходимости делать это вручную. Это должно работать нормально:
const fetchData = async () => {
const response = await fetch('https://sandbox.itunes.apple.com/verifyReceipt', options);
if (response.status === 200)
return {
status: 200,
message: "Subscription verification successfuly!"
}
else
return null
}
На самом деле функция fetchData
фактически возвращается Promise<any>
, поскольку она помечена как асинхронная