javascript - 如何使用 v8 typescript 中发布的顶级异步等待
问题描述
我正在努力从 v8 功能列表中了解这个新功能(顶级异步等待)到底意味着什么
当我尝试在 vanilla JS 中运行时,结果对我来说似乎完全一样,这就是我在 vanilla js 中尝试做的事情。
(() => {
let test1 = async() =>
async() => {
return 'true';
};
(async() => {
let result = await test1();
result = await result();
console.log('r', result)
})();
})()
我想知道这个功能到底是什么意思以及如何使用它。
解决方案
这是v8 的文档。对我来说,这是非常自我描述的,对我个人来说是一个非常方便的功能。
以前,您不能随便写await someAsyncFunction()
,因为要等待函数,您必须调用函数await
内部async
。
例子:
main.js
const fs = require('fs');
const util = require('util');
const unlink = util.promisify(fs.unlink); // promisify unlink function
await unlink('file_path'); // delete file
上面的代码不起作用。最后一行会给你一个错误。所以,我们之前做的是这样的:
async function main() {
const fs = require('fs');
const util = require('util');
const unlink = util.promisify(fs.unlink); // promisify unlink function
await unlink('file_path'); // delete file
}
main();
但是,现在您不必(!)必须这样做。第一个代码可以工作。
这个答案是基于我的理解
推荐阅读
- python - 实参的复函数
- linux - 如何在构建 Xenomai 时修复错误“'recipe for target'doc/automake-1.14.1' failed”
- bash - 如何将多个变量连接到命令并执行它?
- excel - VBA:如何在单元格中插入 VLookup 公式(而不是值)?
- maven - Jenkins maven 发布到 lib-snapshot 存储库
- javascript - 通过 POST 进行身份验证后,我需要使用 Ajax 进行 GET
- html - 单页上的多个轮播不起作用 bootstrap4
- python - Python运行函数,等待,终止函数,运行下一个函数
- c# - 当可以通过在具有相同签名的子类中实现父类函数来完成时,为什么要使用 virtual 和 override?
- makefile - 如何在我的 makefile 上运行 eval 函数