【发布时间】:2019-10-04 19:51:45
【问题描述】:
我想 eval() 异步函数内部的一些代码行。虽然下面的代码没问题,
async function foo()
{
await foo1();
await foo2();
}
以下抛出错误:await 仅在异步函数中有效
let ctxScript = 'await foo1(); await foo2();';
async function foo()
{
eval( ctxScript );
}
我该如何处理? 我的 foo() 应该是异步的,因为它是 Puppetetteer 控制器功能
【问题讨论】:
-
退后一步 - 为什么你想
eval代码?如果你给我们真正的问题,也许它会变成there is a different solution -
由于条件不同,我想执行不同的动作。我的 async foo() 很大,但只有我想通过 eval() 执行的一小段代码是不同的。
-
您已经可以执行不同的函数,而无需
eval-if例如,或者调用完全不同的函数、多态性、设置具有功能的查找表等等。 -
好的,我的 X 问题是我想在函数内部使用一些不同的代码,应该是异步的,最好的 Y 是什么?将所有 async() 代码移动到包含中,如答案 #1 中所述?
-
为什么我们总是在询问 eval 时必须有人说不要使用 eval?只要回答这个问题,它就有合法的用例。
标签: javascript node.js asynchronous eval