Есть ли способ вызвать необлачную функцию внутри того же файла, где были созданы облачные функции Firebase?

Я до сих пор не могу понять, как эти функции работают в целом. Для проекта я создал функцию, которая будет вызываться всякий раз, когда вызывается URL-адрес этой функции. После этого вызываемая функция также использует служебную функцию. Эта функция используется несколько раз, поэтому я считаю целесообразным создавать их только в отдельной функции, хотя всякий раз, когда я использую функцию после развертывания, я получаю эту ошибку.

TypeError: this.isMM is not a function
    at exports.addOrder.functions.https.onRequest (/user_code/index.js:130:11)
    at cloudFunction (/user_code/node_modules/firebase-functions/lib/providers/https.js:57:9)
    at /var/tmp/worker/worker.js:783:7
    at /var/tmp/worker/worker.js:766:11
    at _combinedTickCallback (internal/process/next_tick.js:73:7)
    at process._tickDomainCallback (internal/process/next_tick.js:128:9)

У меня есть только один файл index.js, где я размещаю все свои функции, хотя я не уверен, почему вышеуказанная функция isMM() не читается. Ниже приведен соответствующий кодовый блок (для простоты я заменил содержимое функций.

exports.addOrder = functions.https.onRequest((req, res) => {
  var newValue = req.query.my_info;
  var anotherValue = req.query.another_info;

  var my_info = this.isMM(newValue);
  if (my_info){
    var another_info = this.isMM(anotherValue);
    if (another_info){
      doThis();
    }
  }
});

isMM = (toCheck) => {
  if (toCheck === 'someString'){
    return true;
  }
  return false;
}

Я хочу сделать isMM доступным для чтения внутри addOrder, так как это будет повторяющаяся вещь, которую мне нужно сделать для этого проекта.

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
171
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Просто сделайте следующее и не используйте this .

  var my_info = isMM(newValue);
  if (my_info){
    var another_info = isMM(anotherValue);
    if (another_info){
      doThis();
    }
  }

Большое спасибо! Я настолько привык к тому, что большинство ts-кода не работает должным образом без уведомителя this, что мне никогда не приходило в голову попробовать сделать код без него. Теперь код наконец-то работает, и локальные функции теперь распознаются!

Wisner 27.04.2019 21:38

Другие вопросы по теме