• 大家都搞懂了JavaScript中的async/await 语法吗?
  • 发布于 1周前
  • 47 热度
    5 评论
花了两天时间把相关的东西看了个大概。然后感觉跟着例子照猫画虎应该没什么大问题了,但是自己独立写很可能会有问题。感觉理解得还不是很透彻。这种不透彻是否会导致出现什么严重的问题?你们都搞懂了JavaScript中的async/await 语法吗?
用户评论
  • 时光浅巷
  • 这东西多写写就懂了。编程的好多概念都是看的时候一头雾水,写到需要用到这些个工具的时候立刻恍然大悟了。
  • 2024/4/26 12:50:00 [ 0 ] [ 0 ] 回复
  • 念之森蓝
  • 阮一峰的 ES6 都不看的吗?
    JS 的 async/await 明明是用 co 模块自动调用 Promise 的迭代器( generator 语法生成)的语法糖
    网上各种带你手写的视频、文章,自己花一天时间看一遍不难吧
    这些东西跟 Vue 的模板语法、React 的 JSX 语法一样,你不理解背后的原理也能写,但去了解背后的原理并不会花太多时间,又不是让你去手写编译器
  • 2024/4/26 12:43:00 [ 0 ] [ 0 ] 回复
  • 煮酒慰风尘
  • 一句话解释就是,async/await 是 promise 的语法糖,本质是一个普通的函数,但这个函数的返回值作为一个 promise 里 resolve 的值。其次,这个函数里调用的所有其他异步函数都可以通过 await 来得到其 resolve 之后的值,像同步函数的写法。当然你也可以不在 async 函数体内部写 await ,那里面的异步函数就不会阻塞,各执行各的。
  • 2024/4/26 12:41:00 [ 0 ] [ 0 ] 回复
  • 山色风月倦
  • 我觉得没必要了解微任务,至少我自己是没了解过,目前也没影响我用 js 写代码。async function 方面,知道实际实现是类似在 await 处拆成多个代码块就差不多了。
    例如以下代码:
    async function fn() {
    await a;
    const result = await b;
    console.log(result);
    }
    可以实现成:
    function fn() {
    a.then(() => {
    b.then(result => {
    console.log(result);
    });
    });
    }
    能看作类似回调函数的语法糖。
    不过 C++ 的 coroutine 是拆成 switch case 块,而不是拆成多个回调函数,这个了解就行。
  • 2024/4/26 12:33:00 [ 0 ] [ 0 ] 回复