如何解决在Cloud RunPuppeteer e Chromium中打开浏览器时出错
我在Linux上的Docker环境中开发了一个名为Chromium的无头应用程序,该应用程序由操纵者控制。
容器在机器上运行良好,但是当部署到Cloud Run且应用程序调用浏览器时,将返回以下异常:
(node: 14) UnhandledPromiseRejectionWarning: Open browser error
(node: 14) UnhandledPromiseRejectionWarning: Rejection of untreated promise. This error originated when launching inside an asynchronous function without a catch block or when rejecting a promise that was not handled with .catch (). (rejection id: 1)
(node: 14) [DEP0018] Discontinuation notice: Unhandled promise rejections have been discontinued. In the future,unclaimed promise rejections will end the Node.js process with a non-zero exit code.
我正在使用80版的Chromium和5.4.1版的Puppeteer。 我试图降级Chromium和Puppeter。容器可以在我的Linux机器上正常运行,但是在GCP中也会发生相同的问题
解决方法
从收到的错误中看来,您有一个async...await
没有返回承诺。
async
函数应始终返回promise。只要隐式返回值不会引起问题,一切都应该是完美的,但似乎您的代码中包含一些东西,使其在将其上传到GCP时表现得很时髦。
我将使用在GCP中看到的版本检查节点的安装版本,并查看此处是否存在变形。
否则,除非API支持Promise,否则应完全处理错误。
如果您还可以提供代码,将有助于查看实际问题在哪里,但是我也建议您如果尚未将身体包裹在try..catch
语句中以排除未处理的拒绝,可能会在将来的Node版本中发生或导致例外。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。