Try / Catch / Finnaly with ESLint Ожидается, что в конце функции асинхронной стрелки будет возвращено значение - PullRequest
2 голосов
/ 17 октября 2019

В моем коде есть ошибка ESLint:

функция (productId: any): Обещание Ожидается, что в конце функции асинхронной стрелки будет возвращено значение

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;
    }
  } catch (err) {
    console.log(err);
    return false;
  } finally {
    await InAppBilling.consumePurchase(productId);
    await InAppBilling.close();
  }
};

Кто-то может помочьмне исправить эту проблему без необходимости отключения правила ESLing:)

спасибо

1 Ответ

2 голосов
/ 17 октября 2019

Правило здесь: последовательность-возврат .

Вы ничего не возвращаете, если оператор 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.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...