当前位置:网站首页>ES6高级-async的用法
ES6高级-async的用法
2022-08-04 21:30:00 【吃鱼丸的申申】
作用:使我们的异步操作更加方便,它会返回一个Promise对象,async是Generator的语法糖。
如果async函数中有多个await,那么then函数会等待所有的await指令运行完才去执行,看下面的代码:
<body>
<script>
async function f() {
// 假设这是一次异步行为
let s = await 'hello';
// 假设这也是一次异步行为
let data = await s.split('');
return data;
}
f().then(v => console.log(v)).catch(e => console.log(e))
</script>
</body> 输出结果:![]()
再来看下面这段代码:
<body>
<script>
async function f() {
await Promise.reject('出错了');
await Promise.resolve('hello');
}
f().then(v => console.log(v)).catch(e => console.log(e))
</script>
</body>输出结果:
await有一个特点就是如果哪里返回的是失败就会不再往下执行,更改方法:
<body>
<script>
async function f() {
try {
await Promise.reject('出错了');
} catch (error) {
}
return await Promise.resolve('hello');
}
f().then(v => console.log(v)).catch(e => console.log(e))
</script>
</body>再来看一个例子:
<body>
<script>
function testAwait() {
return new Promise((resolve) => {
setTimeout(function() {
console.log("testAwait");
resolve('sy!!!');
}, 1000);
});
}
async function helloAsync() {
return await testAwait();
console.log("helloAsync");
}
helloAsync().then(val => console.log(val));
</script>
</body>输出结果:
边栏推荐
猜你喜欢
随机推荐
LayaBox---TypeScript---structure
经验分享|盘点企业进行知识管理时的困惑类型
moke、动态图片资源打包显示
多个平台显示IP属地,必须大力推行互联网实名制
STM32MP157A驱动开发 | 01- 板载LED作为系统心跳指示灯
buu web
C#之app.config、exe.config和vshost.exe.config作用区别
dotnet 启动 JIT 多核心编译提升启动性能
链队
C language knowledge (1) - overview of C language, data types
Codeforces Round #811 (Div. 3)
Win11如何设置软件快捷方式?
Android 面试——如何写一个又好又快的日志库?
LayaBox---TypeScript---结构
搬走地下空间开发利用“绊脚石” 中地数码取得地下空间透明化技术突破
【PCBA方案设计】握力计方案
[2022 Nioke Duo School 5 A Question Don't Starve] DP
【SQL之降龙十八掌】01——亢龙有悔:入门10题
LayaBox---TypeScript---Problems encountered at first contact
mysql基础









