当前位置:网站首页>Promise (三) async/await
Promise (三) async/await
2022-08-05 05:47:00 【要不要买菜啊】
async 函数
async 函数是使用async
关键字声明的函数。 async 函数是AsyncFunction构造函数的实例, 并且其中允许使用await
关键字。async
和await
关键字让我们可以用一种更简洁的方式写出基于Promise的异步行为,而无需刻意地链式调用promise
。
特点
async function main(){
//1. 如果返回值是一个非Promise类型的数据,会返回一个resolved的promise对象,值为该数据
// return 521;
//2. 如果返回的是一个Promise对象
return new Promise((resolve, reject) => {
resolve('OK');
// reject('Error');
});
//3. 抛出异常
// throw "Oh NO";
}
let result = main();
console.log(result);
await 表达式
async function main(){
let p = new Promise((resolve, reject) => {
resolve('OK');
// reject('Error');
})
//1. 右侧为promise的情况
// let res = await p;
//2. 右侧为其他类型的数据
let res2 = await 20;
// console.log(res2); // 20
//3. 如果promise是失败的状态
// try{
// // let res3 = await p;
// }catch(e){
// console.log(e);
// }
}
main();
注意
async与await结合
const fs = require('fs');
const util = require('util');
// 将 API 转为promise形式的函数
const mineReadFile = util.promisify(fs.readFile);
//回调函数的方式
// fs.readFile('./resource/1.html', (err, data1) => {
// if(err) throw err;
// fs.readFile('./resource/2.html', (err, data2) => {
// if(err) throw err;
// fs.readFile('./resource/3.html', (err, data3) => {
// if(err) throw err;
// console.log(data1 + data2 + data3);
// });
// });
// });
//async 与 await
// 出错也不需要每一层都去判断,使用try...catch即可
async function main(){
try{
//读取第一个文件的内容
let data1 = await mineReadFile('./resource/1.html');
let data2 = await mineReadFile('./resource/2.html');
let data3 = await mineReadFile('./resource/3.html');
console.log(data1 + data2 + data3);
}catch(e){
console.log(e.code);
}
}
main();
边栏推荐
猜你喜欢
Collision, character controller, Cloth components (cloth), joints in the Unity physics engine
多用户商城多商户B2B2C拼团砍价秒杀支持小程序H5+APP全开源
txt文件英语单词词频统计
自营商城提高用户留存小技巧,商城对接小游戏分享
VS Code私有服务器部署(私有化)
云计算基础-学习笔记
花花省V5淘宝客APP源码无加密社交电商自营商城系统带抖音接口
Tencent Internal Technology: Evolution of Server Architecture of "The Legend of Xuanyuan"
UI刘海屏适配方式
数组&的运算
随机推荐
Drools规则引擎快速入门(一)
字体样式及其分类
Tencent Internal Technology: Evolution of Server Architecture of "The Legend of Xuanyuan"
Quick Start to Drools Rule Engine (1)
矩阵的构造
numpy.random使用文档
Transformer详细解读与预测实例记录
Pytorch分布式并行处理
八大排序之快速排序
指针常量与常量指针 巧记
Chengyun Technology was invited to attend the 2022 Alibaba Cloud Partner Conference and won the "Gathering Strength and Going Far" Award
2022杭电多校六 1007-Shinobu loves trip(同余方程)
LaTeX 图片加标题 文本分栏自动换行
lingo入门——河北省第三届研究生建模竞赛B题
单片机期末复习大题
unity 将Text批量替换为TextMeshProUGUI
Come, come, let you understand how Cocos Creator reads and writes JSON files
MyCat安装
LaTeX使用frame制作PPT图片没有标号
Q 2020, the latest senior interview Laya soul, do you know?