JavaScript 中带有“async”和“await”的异步函数
异步编程在 JavaScript 模型中至关重要。当异步操作完成时,随后执行附加代码是很常见的。以前,回调被用于此目的。然而,嵌套回调可能会导致“回调地狱”。
Promises
Promise 改善了与嵌套回调相关的问题。它们通过“承诺链”实现链接,从而提供更清晰的语法和错误处理。例如:
<code class="javascript">const randomProm = new Promise((resolve, reject) => { if (Math.random() > 0.5) { resolve('Succes'); } else { reject('Failure'); } }); // Promise chain randomProm .then((value) => { console.log('inside then1'); console.log(value); return value; }) .then((value) => { console.log('inside then2'); console.log(value); return value; }) .catch((value) => { console.log('inside catch'); console.log(value); });</code>
'async' 和 'await' 关键字
引入异步函数,也称为“异步函数”,以进一步简化异步编程。这些函数以 async 关键字为前缀,并允许使用await 关键字。
await 暂停异步函数的执行,直到其中的表达式(通常是 Promise)稳定下来。一旦表达式解析,函数就会恢复。例如:
<code class="javascript">async function myAsyncFunc() { try { const result = await randomProm; console.log(result); } catch (error) { console.log(error); } } myAsyncFunc();</code>
在此示例中,myAsyncFunc 是一个等待 randomProm Promise 结果的异步函数。一旦 Promise 解析或拒绝,就会执行 try/catch 块的相应分支。通过利用 async 和 wait,我们消除了对复杂回调逻辑的需求并增强了代码可读性。
以上是如何在 JavaScript 中使用'async”和'await”进行流畅的异步编程?的详细内容。更多信息请关注PHP中文网其他相关文章!