JS规范

- ## 基本语法和使用参考[JS教程](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript) - ## 使用疑难 - #### 如何使异步程序读取的数据再使用时同步? async await [官方解释](https://developer.mozilla.org/zh-CN/docs/Learn/JavaScript/Asynchronous/Async_await) [小程序中使用async await](https://segmentfault.com/a/1190000021966277) ##### async作用: 当调用一个 ==async== 函数时,会返回一个 ==Promise== 对象。当这个 ==async== 函数返回一个值时,==Promise== 的 ==resolve==方法会负责传递这个值;当 ==async== 函数抛出异常时,==Promise== 的 ==rejec==t 方法也会传递这个异常值。 async 函数中可能会有 await 表达式,这会使 async 函数暂停执行,等待 Promise 的结果出来,然后恢复async函数的执行并返回解析值(resolved)。 ###### await作用: await 表达式会暂停当前 async function 的执行,等待 Promise 处理完成。若 Promise 正常处理(fulfilled),其回调的resolve函数参数作为 await 表达式的值,继续执行 async function。 - await的理解 一般,我们认为 await 是在等待一个 async 函数完成。 因为 async 函数返回一个 Promise 对象,所以 await 可以用于等待一个 async 函数的返回值。 需要注意的是,await 不仅仅用于等 Promise 对象,它可以等任意表达式的结果,所以,await 后面可以接普通函数调用。 await 要等的东西,Promise 对象,或者其它值。 await 是个运算符,用于组成表达式,await 表达式的运算结果取决于它等的东西。 如果它等到的不是一个 Promise 对象,那 await 表达式的运算结果就是它等到的东西。 如果它等到的是一个 Promise 对象,await会等着 Promise 对象 resolve,然后得到 resolve 的值, 作为 await 表达式的运算结果。