下载APP
登录
关闭
讲堂
算法训练营
Python 进阶训练营
企业服务
极客商城
客户端下载
兑换中心
渠道合作
推荐作者
当前播放: 17 | 异步:异步编程之async/await
00:00 / 00:00
标清
  • 标清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看

Node.js开发实战

共57讲 · 约600分钟
3785
免费
01 | 课程介绍
免费
02 | 内容综述
免费
03 | Node.js是什么?
免费
04 | Node.js可以用来做什么?
免费
05 | 课程实战项目介绍
06 | 什么是技术预研?
07 | Node.js开发环境安装
08 | 第一个Node.js程序:石头...
09 | 模块:CommonJS规范
10 | 模块:使用模块规范改造石...
11 | 模块:npm
12 | 模块:Node.js内置模块
13 | 异步:非阻塞I/O
14 | 异步:异步编程之callback
15 | 异步:事件循环
16 | 异步:异步编程之Promise
17 | 异步:异步编程之async/...
18 | HTTP:什么是HTTP服务器?
19 | HTTP:简单实现一个HTTP服...
20 | HTTP:实现网页版石头剪刀...
21 | HTTP:用express优化石头...
22 | HTTP:用koa优化石头剪刀...
23 | RPC 调用:什么是RPC调用...
24 | RPC调用:Node.js Buffe...
25 | RPC 调用:Node.js net...
26 | 项目启动:整体需求分析
27 | 项目启动:极客时间App下...
28 | 课程详情页:极客时间详情...
29 | 课程详情页:将ES6模版字...
30 | 课程详情页:极客时间详情...
31 | 课程播放页:极客时间播放...
32 | 课程播放页:GraphQL API...
33 | 课程播放页:极客时间播放...
34 | 课程列表页:极客时间列表...
35 | 课程列表页:用 Vue/Rea...
36 | 课程列表页:极客时间列表...
37 | 性能工具:HTTP服务的性能...
38 | 性能工具:Node.js性能分...
39 | 代码优化:JavaScript代码...
40 | 代码优化:内存管理优化
41 | 代码优化:Node.js C+...
42 | 多进程优化:Node.js子进...
43 | 多进程优化:Node.js cl...
44 | 多进程优化:进程守护与管...
45 | 架构优化:动静分离
46 | 架构优化:反向代理与缓存...
47 | 概念:框架设计和工程化
48 | 概念:设计模式
49 | 概念:Serverless
50 | 服务端框架搭建:koaless
51 | 服务端框架搭建:屏蔽请求...
52 | 服务端框架搭建:完成服务...
53 | 云函数式工程实现:服务端...
54 | 云函数式工程实现:工具端...
55 | 加餐:调试 Node.js 源...
56 | 结束语
57 | 彩蛋:这是一个严肃的课程
本节摘要

精选留言(11)

  • 2019-10-10
    老师讲异步这里真心好,之前看了很多文章教程比较混沌,老师讲的一下子就明白了。🙏谢谢

    作者回复: 很感动,我自己看的时候都还觉得有一些地方没讲好,还可以改进

    5
  • 2019-12-01
    如果一个正常函数,里面运行 await function,但是函数最外面不加async 修饰符会怎么样啊?
      比如 老师视频里面11.30 时候的 最外面的立即执行函数 不用 async 修饰可以吗?


    async function(){
    await interview(1);
    await intervire(2);
    }

    变成:

     function(){
    await interview(1);
    await intervire(2);
    }

    这样可以吗?
    展开

    作者回复: 会报语法错误,普通函数里不能await

    1
  • 2019-11-05
    为啥代码给的案例和课程对应内容举的例子不一样呢??

    作者回复: 整理代码的时候想了想还有更好的表达方式就改了。思路是一样的

    1
  • 2019-12-09
    老师这个then的发音让人头皮发麻,咬舌过度了, 内容还是很棒的
  • W
    2019-12-01
    老师,使用 await 捕获了 error,所以可以理解为 await 是将 异步程序的调用栈 重新入栈到 主程序调用栈 上了吗?

    作者回复: 不能,不存在异步程序和主程序两个程序。两段代码都属于一个进程。只是在不同的事件循环里执行。

    这里抓到错误的其实不是try catch,而是await语法被编译后,实际上由Promise的catch抓到。

    1
  • 2019-10-22
    老师,那个事件循环感觉没有讲到位,后面讲 await的时候,很多的技术细节都是跟事件循环相关的,但是都被一笔带过了,期待这些细节处的补充。谢谢

    作者回复: 好的,我会考虑一下

  • 2019-10-20
    老师 讲的细心,不拖时间,针对核心知识点讲的明白,会继续学完。对了老师可以提供下你编码的习惯么,看你写程序规范 很专业,和vscode 对代码的格式化 操作 很秀,想学习下,方便提供下么

    作者回复: 异步这一块,很多人就是因为不了解Promise和async的用法,所以写出来的代码很多冗余很混乱。

    主要就是熟悉用法,明白它的设计思路,同时熟练掌握vscode……的代码格式化快捷键

  • 2019-10-16
    const result = async function () {
            try {
                var content = await new Promise((resolve, reject) => {
                    setTimeout(() => {
                        reject(new Error('8'));
                    }, 500)
                    
                })
            } catch (e) {
                console.log('error', e.message);
            }
            console.log(content);
            return 4;
        }();

        setTimeout(() => {
            console.log(result);
        }, 800);
    return 4 上面的console.log(content)为啥为undefined
    展开

    作者回复: promise是reject的情况下,await会马上抛错并且中断代码执行,所以赋值并没有成功

  • 2019-10-15
    今天下午难得有时间把 Promise 啃完了,真香!

    啧啧...
  • 2019-10-14
    awiait Promise.all([a,b,c]) 这种属于并行的吗

    作者回复: 你await拼错了,拼对了的话,就是并行的

    2
  • 2019-10-11
    有原理,有例子,一点也不枯燥,看的津津有味,真香~~~

    作者回复: 谢谢