Правило здесь: последовательность-возврат .
Вы ничего не возвращаете, если оператор if
в блоке try
не выполнен. Вы должны вернуть что-то, если вызов isSubscribed
верен:
export const getGooglePlayPayment = async (productId) => {
await InAppBilling.close();
try {
await InAppBilling.open();
if (!await InAppBilling.isSubscribed(productId)) {
const details = await InAppBilling.subscribe(productId);
console.log('You purchased: ', details);
return details.purchaseState === PAYMENT_STATE.PurchasedSuccessfully;
}
return 'Already subscribed';
} catch (err) {
console.log(err);
return false;
} finally {
await InAppBilling.consumePurchase(productId);
await InAppBilling.close();
}
};
(Конечно, замените Already subscribed
на то, что будет наиболее целесообразно там. Если вы просто хотите указать, что транзакция прошла успешно, возможно,return true
. Важно отличить его от return false
в catch
.)