async/await

async/await

asyncES7的与异步操作有关的关键字,其返回一个Promise对象,await操作符用于等待一个Promise对象,它只能在异步函数async function内部使用。async/await的目的是简化使用多个promise时的同步行为,并对一组Promises执行某些操作。正如Promises类似于结构化回调,async/await更像结合了generatorspromises

async#

语法#

Copy
async function name([param[, param[, ... param]]]) { statements }
  • name: 函数名称。
  • param: 要传递给函数的参数的名称。
  • statements: 函数体语句。

async函数返回一个Promise对象,可以使用then方法添加回调函数,返回的Promise对象会运行执行resolve异步函数的返回结果,如果抛出异常则运行拒绝reject

实例#

Copy
async function asyncPromise(v){ return v; } asyncPromise(1).then((v) => { console.log(v); }).catch((e) => { console.log(e); })

await#

async一般是配合await指令使用的,该指令会暂停异步函数的执行,并等待Promise执行,然后继续执行异步函数,并返回结果。若Promise处理异常rejectedawait表达式会把Promise的异常原因抛出。另外,如果await操作符后的表达式的值不是一个Promise,则返回该值本身。

实例#

Copy
function promise(){ return new Promise(function(resolve,reject){ var rand = Math.random() * 2; setTimeout(function(){ resolve(`solve ${rand}`); },1000) }) } (async function asyncPromise(){ var result = await promise(); console.log(result); })(); // 捕捉异常 function promise(){ return new Promise(function(resolve,reject){ throw new Error(`reject`); }) } (async function asyncPromise(){ var result = await promise(); console.log(result); })().catch((e) => { console.log(e); }); // 非promise对象直接返回该值本身 function notPromise(){ return 1; } (async function asyncPromise(){ var result = await notPromise(); console.log(result); })();

每日一题#

Copy
https://github.com/WindrunnerMax/EveryDay
posted @   WindRunnerMax  阅读(126)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示
CONTENTS