В управлении переменными есть несколько ошибок: одной рукой вы создаете новый пусть с тем же именем. Поскольку переменная let является областью видимости, значение lastStickyMessage
внутри отправленного обратного вызова будет иметь другое значение, чем за его пределами, поскольку это две разные переменные (подробнее об этом здесь ).
Кроме того, вы должны сохранить последний отправленный идентификатор в файле или где-то еще, так как var будет сброшен после перезапуска вашего бота (встроенный модуль fs
может помочь вам в этом, вы можете найти документацию здесь ).
И последнее: если вы инициализируете переменную без значения, это будет не null
, а undefined
. Если вы проверяете только с использованием ==
, оно все равно будет иметь значение true
(означает null == undefined
), но если вы сравните с использованием ===
, оно будет иметь значение false (null !== undefined
). В вашем случае это на самом деле не проблема, но это может быть полезно знать для других случаев.