gpt4 book ai didi

javascript - 如何在自调用的异步函数中插入参数?

转载 作者:行者123 更新时间:2023-11-30 08:25:00 25 4
gpt4 key购买 nike

我有一个带有发布请求的 Express 设置。我尝试将 req 添加到 (async (req, res):

router.post('/search', (req, res) => {
;(async (req, res) => {
const browser = await puppeteer.launch()
const page = await browser.newPage()
await page.goto(`https://www.google.com/search?tbm=bks&q=%22this+is%22`)
const result = await page.evaluate(() => {
console.log('CLAUSESS:', req.body.clauses)
const clauses = req.body.clauses
return clauses.map(clause => clause.textContent)
})
result.join('\n')
await browser.close()
res.send(result)
})()
})

但是,我仍然收到此错误:

(node:5757) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): Error: Evaluation failed: ReferenceError: req is not defined at :2:32

这样做的正确方法是什么?

最佳答案

你的 linter(如果有的话)应该提示说你在那个 IIFE 上隐藏了变量。我将其重写为

router.post('/search', (req, res) => {
;(async () => {
const browser = await puppeteer.launch()
const page = await browser.newPage()
await page.goto(`https://www.google.com/search?tbm=bks&q=%22this+is%22`)
const result = await page.evaluate(() => {
console.log('CLAUSESS:', req.body.clauses)
const clauses = req.body.clauses
return clauses.map(clause => clause.textContent)
})
result.join('\n')
await browser.close()
res.send(result)
})()
})

让它使用来自路由器的 reqres 而不是它自己的阴影空变量。

关于javascript - 如何在自调用的异步函数中插入参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47223392/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com