«это» не определено в методах экземпляра при импорте Puppeteer внутри модуляJavascript

Форум по Javascript
Ответить
Anonymous
 «это» не определено в методах экземпляра при импорте Puppeteer внутри модуля

Сообщение Anonymous »

У меня возникла проблема с Puppeteer, из-за которой «this» не определено в методах экземпляра класса Puppeteer, когда Puppeteer импортируется в модуль.
Когда я импортирую Puppeteer непосредственно в свой основной файл скрипт, все работает как положено. Однако как только я пытаюсь импортировать и использовать Puppeteer в отдельном модуле, я получаю следующую ошибку:

Код: Выделить всё

TypeError: Cannot read properties of undefined (reading '#defaultContext')
at newPage (/node_modules/puppeteer-core/lib/esm/puppeteer/cdp/Browser.js:173:27)
При ближайшем рассмотрении оказывается, что это не определено внутри метода экземпляра браузера.newPage() всякий раз, когда Puppeteer импортируется внутри модуля.
Я пробовал настроить параметры компилятораallowSyntheticDefaultImports, esModuleInterop, модуля и ModuleResolution в моем tsconfig.json безрезультатно. Я также попытался импортировать Puppeteer, используя синтаксис import puppeteer из "puppeteer", import * as puppeteer из "puppeteer" и import puppeteer = require("puppeteer"), и я столкнулся с одна и та же проблема во всех трех ситуациях.
Хотя привязка этого вручную при вызове метода экземпляра кажется обходным решением (например, браузер.newPage.bind(browser)), вам, похоже, придется делать это каждый раз, когда вы вызываете какие-либо методы экземпляра классов Puppeteer.

Подробнее здесь: https://stackoverflow.com/questions/793 ... e-a-module
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»