编程与计算机基础

异步函数async和await

背景 最近在回头看nfd项目 的源码,看到了使用async和await的js代码,因此想了解一下代码运行的机制。 一个例子 function SicBo() { return new Promise((resolve, reject) => { console.log("开始摇") setTimeout(() => { let n = parseInt(Math.random() * 6 + 1, 10) resolve(n) }, 1000) }) } 上述代码的执行过程如下: 立即执行 console.log("开始摇") —— ✅ 马上输出。 启动一个“1秒后执行的任务” —— 通过 setTimeout(...) 注册了一个回调,1 秒后执行。 返回一个 Promise 对象,这个 Promise 会在 1 秒后变成“完成状态”并给出点数。 ...