【发布时间】:2020-05-28 08:22:53
【问题描述】:
// Does not work - Cannot find name 'await'.ts(2304)
let someVariable = await (async ():someType => {
// i need to use await inside here so i need it async
return someValue;
})();
// does work, but not async.
let someVariable2 = (():someType => {
// cant use await inside
return someValue
})();
我尝试将 await 包裹在另一组弧形括号内,但仍然无法正常工作。是的,我知道我可以声明一个函数,然后像往常一样调用它,但我宁愿这样。如果不可能,那么就回到正常的方式。
我不完全知道() 在这种情况下会做什么,但我假设它会返回里面的对象。可以像这样使用 async/await 吗?如果可能的话,还想详细了解() 在这种情况下的工作原理。
代码在 Deno 上运行
编辑:人们说“必须在异步块内使用等待”Deno 具有顶级等待。
澄清。
// this is top-level
async function somefunc() {}
await somefunc(); // this WORKS on deno.
问题是let var = await(async () => {})() 创建了上述错误,我正在尝试找到一种方法来解决这个问题,而不是先声明然后等待它
【问题讨论】:
-
您只能在
async函数中使用await,并且大概是从全局范围内运行它。 -
这能回答你的问题吗? TypeScript: cannot find name async/await
-
deno 有顶级 await,不需要放在异步块中
-
"Deno 有顶级 await" --- typescript 没有。它最终运行在哪里并不重要,你需要先编译它。
-
@zerkms 带有 deno 和 ide 扩展(抑制/更改错误)。 deno 在没有 tsc 的情况下运行 typescript
标签: javascript typescript async-await