ECMA Script 6_async 函数
2024-10-05 21:38:39
async 函数
const promise = new Promise((resolve, reject)=>{
setTimeout(function(){
console.log("Done1"+"First");
resolve("Done1"+"First");
}, 1000);
});
async function fn(){
console.log("开始执行!"); // 只能在 async 函数里使用
await 123; // 只能在 async 函数里使用 // 只能在 async 函数里使用
await promise; // 异步等待,须包装成 Promise 对象 console.log("执行完了!");
}; fn();
真正意义上去解决异步回调的问题,
同步流程 表达 异步操作
本质上就是: Generator 的语法糖
- await promise;
等待异步操作
只会 等待 初始化状态的 Promise 实例(如果是失败状态,会报错)
const promise = new Promise((resolve, reject)=>{
setTimeout(function(){
resolve("1");
}, 1000);
}); async function fn(){
console.log('开始执行'); const result1 = await promise;
console.log(result1); const result2 = await new Promise((resolve, reject)=>{
setTimeout(function(){
resolve('2'); // 如果这里 reject() 则下面的代码都不会执行了
}, 2000);
}); const result3 = await new Promise((resolve, reject)=>{
setTimeout(function(){
resolve('3');
}, 3000);
});
}; var ret = fn();
console.log(ret); // 默认返回值 就是Promise 实例 ret.then(result=>{
console.log('全部都成功了');
console.log(result); // 如果没有返回值,默认 unfefined
}).catch(result=>{
// 必须是 await 修饰的 promise 实例,且必须 失败状态
console.log('Something is wrong!');
});
最新文章
- VS2015下编译64位GDAL总结
- iOS开发 滤镜的使用
- blogilo在chinaunix发布博客的设置
- 2016.9.1 JavaScript入门之五
- ecshop商品详细描述调用商品相册代码
- java面向对象编程——第八章 类的高级概念
- 13、NFC技术:读写非NDEF格式的数据
- ScheduledExecutorService的用法——定时执行两个任务
- uva340 数字匹配检索问题
- 获取自身ip
- Java_xml_Dom解析方式
- java实现 阿拉伯数字转换为汉字数字 算法
- 纠错《COM技术内幕》之ProgID
- matlab 利用while循环计算平均值和方差
- pyparsing:定制自己的解析器
- MySQL数据库分区的概念与2大好处(1)
- 新手入门 git
- android 自定义Viewpager实现无限循环
- 高淇java300集JAVA面向对象的进阶作业
- HTML阻止冒泡事件的发生