Await仅在使用Node.js的异步函数中有效

写作开发人员

我正在开发一个Web捕获应用程序,似乎所有功能都具有异步功能,但控制台显示SyntaxError: await is only valid in async function错误。

我试图将所有功能更改为异步,但似乎仍然无法正常工作。是否由于fs模块而出错?我想当我尝试在另一个应用程序中不使用fs模块时,它实际上可以工作。

这是我的完整代码

const puppeteer = require("puppeteer");
const fs = require('fs');

let galleryName = "frozen"; // Enter gallery name

(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  // Adjustments particular to this page to ensure we hit desktop breakpoint.
  page.setViewport({
    width: 1000,
    height: 10000,
    deviceScaleFactor: 1
  });

  fs.readFile('db.txt', function (err, data) {
    if (err) throw err;
    let array = data.toString().split("\n");
    for (i in array) {
      console.log(`Now Processing : ${array[i]} ${array.length - i -1} left`);
      await page.goto(`https://gall.dcinside.com/${galleryName}/${array[i]}`), { // !!!!ERROR shows from here
        waitUntil: "networkidle2",
        timeout: 0
      };
      async function screenshotDOMElement(opts = {}) {
        const padding = "padding" in opts ? opts.padding : 0;
        const path = "path" in opts ? opts.path : null;
        const selector = opts.selector;

        if (!selector) throw Error("Please provide a selector.");

        const rect = await page.evaluate(selector => {
          const element = document.querySelector(selector);
          if (!element) return null;
          const {
            x,
            y,
            width,
            height
          } = element.getBoundingClientRect();
          return {
            left: x,
            top: y,
            width,
            height,
            id: element.id
          };
        }, selector);

        if (!rect)
          throw Error(
            `Could not find element that matches selector: ${selector}.`
          );

        return await page.screenshot({
          path,
          clip: {
            x: rect.left - padding,
            y: rect.top - padding,
            width: rect.width,
            height: rect.height + padding * 2
          }
        });
      }

      await screenshotDOMElement({
        path: `./result/${pageNumArray[i]}.png`,
        selector: ".view_content_wrap",
        padding: 10
      });
    }
  });
  //   // await browser.close();
})();
阿西姆·汗

fs中的回调函数也需要异步,

fs.readFile('db.txt', async function (err, data) {}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

即使等待位于 Node.js 中的异步函数中,如何修复“await 仅在异步函数中有效”?

for循环中的“ await仅在异步函数中有效”

For 循环 - SyntaxError: await 仅在异步函数中有效

await 仅在异步函数 discord.js 中有效

“await 仅在异步函数中有效” discord.js

Sails.js SyntaxError:await 仅在异步函数中有效

SyntaxError:当使用Node JS连接到Mongo DB时,await仅在异步功能中有效

给出 await 的异步函数仅在异步函数中有效

“await 仅在异步函数中有效”,而它是一个异步函数

Javascript:SyntaxError:等待仅在异步函数中有效

await 总是抛出 SyntaxError: await 仅在 sequelize 的异步函数中有效

ASYNC / AWAIT SyntaxError:await 仅在异步函数和模块的顶级主体中有效

`SyntaxError:await 仅在异步函数中有效`,同时尝试在 node rest api 中注册用户

Google Cloud / Firebase 函数:await 仅在异步函数中有效

SyntaxError:await 仅在带有 Apify Metamorph 的异步函数中有效

await 仅在异步函数 Discord bot 反应角色中有效

等待仅在异步函数中有效,同时我已经在函数中放置了“异步”

await仅在异步功能中有效-异步中的eval

module.exports SyntaxError:等待仅在异步函数中有效

module.exports SyntaxError:等待仅在异步函数中有效

discord.js机器人等待仅在异步功能中有效

等待仅在异步功能中有效

等待仅在异步功能中有效

等待仅在异步功能中有效

NodeJs等待仅在异步功能中有效

错误:等待仅在异步功能中有效

无法将Node.js异步函数识别为有效的异步函数

未捕获的 SyntaxError:await 仅在 async 函数中的 async 函数中有效

为什么我的 await 在我的功能中不起作用?“语法错误:等待仅在异步函数中有效”