Публичная привязка функции функции PubNub
Ваша функция привязана к каналу '*'
, что, конечно, означает захват всех публикаций для всех каналов. Что вы не знаете, так это то, что console.log
в функции публикует сообщение на канал, который выглядит следующим образом: blocks-output-kpElEbxa9VOgYMJQ.77042688368579w9
И окно вывода функций подписывается на этот канал для отображения вашего console.log
«S. Поэтому, когда функция вызывается, она публикует сообщение на канал console.log
s, которое захватывается вашей функцией, которое вызывает console.log
, и, в конце концов, настраивается предел рекурсии, чтобы защитить вас от попадания в бесконечный цикл.
Таким образом, если бы вы изменили привязку своего канала на что-то вроде foo.*
и опубликовали на канале, подобном foo.bar
, этой нежелательной рекурсии можно было бы избежать. В производственной среде также необходимо удалить console.logs, и это не вызовет этого.
Кроме того, вы можете реализовать некоторые условия фильтра канала в верхней части вашей функции, чтобы предотвратить ее дальнейшее выполнение. Ваш код функции:
if (channel.startsWith("blocks-output"))
return request.ok()
}