-
async + 函数,返回结果为一个Promise对象
① 函数return为非Promise类型数据,则函数返回为成功的promise,且成功的结果就是return的值
② 函数return为Promise类型数据,则函数返回的结果就是Promise的结果 -
await + Promise对象,返回结果为该Promise对象的成功结果值,如果结果是失败,需要通过try-catch捕获失败数据值
-
案例:依次读取文件
const fs = require('fs'); function getText1() { return new Promise((resolve, reject) => { fs.readFile('./text1.txt', (err, data) => { if (err) reject(err); resolve(data.toString()); }); }); } function getText2() { return new Promise((resolve, reject) => { setTimeout(() => { fs.readFile('./text2.txt', (err, data) => { if (err) reject(err); resolve(data.toString()); }); }, 3000); }); } function getText3() { return new Promise((resolve, reject) => { fs.readFile('./text3.txt', (err, data) => { if (err) reject(err); resolve(data.toString()); }); }); } async function main() { try { const result1 = await getText1(); console.log(result1); const result2 = await getText2(); console.log('3s之后输出text2文件的内容' + result2); const result3 = await getText3(); console.log(result3); } catch(err) { console.warn(err); } } main();
es6+的async和await
最新推荐文章于 2024-05-23 11:01:45 发布