Ожидаемый catch () или возврат (обещание / catch-or-return) - PullRequest
0 голосов
/ 28 апреля 2018

Я новичок в JavaScript. Это моя первая функция в javascript для развертывания функции на базе Firebase.

Получил эту ошибку:

 - [eslint] Unexpected function expression. (prefer-arrow-callback)
 - [eslint] Expected catch() or return (promise/catch-or-return)

Что не так с этой функцией?

const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);

exports.grantSignupReward = functions.database.ref('/users/{uid}/last_signin_at')
  .onCreate(event => {
  var uid = event.params.uid;

  admin.database().ref('users/${uid}/referred_by')
    .once('value').then(function(data) {
    var referred_by_somebody = data.val();

    if (referred_by_somebody) {
      var moneyRef = admin.database()
      .ref('/users/${uid}/inventory/pieces_of_eight');

      moneyRef.transaction(function(current_value) {
        return (current_value || 0) + 50;
      });
    }
  });
});

1 Ответ

0 голосов
/ 28 апреля 2018

Первая ошибка предлагает вам использовать функцию стрелки в качестве обратного вызова. Поэтому вам нужно заменить обычные функции (function() { ... }) на функции стрелок (() => { ... }).

Вторая ошибка предполагает, что вам нужно либо поймать отказ от обещания, либо вернуть само обещание. Я не слишком уверен в вашем коде, но я считаю, что этот метод:

admin.database().ref('users/${uid}/referred_by').once('value')

возвращает обещание. Поэтому его нужно вернуть так:

return admin.database().ref('users/${uid}/referred_by').once('value')

или обработайте ошибку следующим образом:

admin.database().ref('users/${uid}/referred_by').once('value')
  // ... your code here
  .catch(error => { ... });

Как @Bergi указал в комментариях, что возвращение обещания здесь не является предпочтительным, вы можете просто добавить блок catch к своему обещанию.

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