Node.js 开发实战
杨浩
腾讯高级工程师
37442 人已学习
新⼈⾸单¥68
课程目录
已完结/共 57 讲
第一章:课程简介 (5讲)
Node.js 开发实战
登录|注册
留言
20
收藏
沉浸
阅读
分享
手机端
回顶部
当前播放: 14 | 异步:异步编程之callback
00:00 / 00:00
高清
  • 高清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.75x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看
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/await
18 | HTTP:什么是HTTP服务器?
19 | HTTP:简单实现一个HTTP服务器
20 | HTTP:实现网页版石头剪刀布
21 | HTTP:用express优化石头剪刀布游戏
22 | HTTP:用koa优化石头剪刀布游戏
23 | RPC 调用:什么是RPC调用?
24 | RPC调用:Node.js Buffer编解码二进制数据包
25 | RPC 调用:Node.js net建立多路复用的RPC通道
26 | 项目启动:整体需求分析
27 | 项目启动:极客时间App下载页开发
28 | 课程详情页:极客时间详情页需求解构
29 | 课程详情页:将ES6模版字符串改造成模板引擎
30 | 课程详情页:极客时间详情页需求实现
31 | 课程播放页:极客时间播放页需求解构
32 | 课程播放页:GraphQL API服务
33 | 课程播放页:极客时间播放页需求实现
34 | 课程列表页:极客时间列表页需求解构
35 | 课程列表页:用 Vue/React 进行服务端渲染
36 | 课程列表页:极客时间列表页需求实现
37 | 性能工具:HTTP服务的性能测试
38 | 性能工具:Node.js性能分析工具
39 | 代码优化:JavaScript代码性能优化
40 | 代码优化:内存管理优化
41 | 代码优化:Node.js C++插件
42 | 多进程优化:Node.js子进程与线程
43 | 多进程优化:Node.js cluster模块实战与源码解读
44 | 多进程优化:进程守护与管理
45 | 架构优化:动静分离
46 | 架构优化:反向代理与缓存服务
47 | 概念:框架设计和工程化
48 | 概念:设计模式
49 | 概念:Serverless
50 | 服务端框架搭建:koaless
51 | 服务端框架搭建:屏蔽请求细节
52 | 服务端框架搭建:完成服务端框架
53 | 云函数式工程实现:服务端代码
54 | 云函数式工程实现:工具端代码
55 | 加餐:调试 Node.js 源码
56 | 结课测试&结束语
57 | 彩蛋:这是一个严肃的课程
本节摘要
登录 后留言

全部留言(20)

  • 最新
  • 精选
学不动了
代码解析的时候会按顺序入栈,遇到setTimeout之类的宏任务的时候会起另一个调用栈,所以setTimeout里的throw和try catch里边的interview不在同一个调用栈,可以这么理解嘛?

作者回复: 嗯,差不多是这样。

2020-05-07
3
4
灰灰
所以 现在流行的处理异步操作的方法是什么?

作者回复: 下周会更新哈

2019-10-02
2
2
striveMan
async只能解决异步并发控制吗,能解决回调地狱吗

作者回复: 当然也是有解决到的。不过回调地狱只是描述代码不美观而已。如果你非要说你喜欢那种代码造型,不解决也没问题的。

2019-10-13
1
学渣汪在央企打怪升级
一直没明白interview(function(){})是什么?是调用interview函数,参数又是一个函数吗?是不是有点像python闭包

作者回复: 对,参数是一个函数。在javascript里函数是可以直接以值的方式传递的,这是js一个优秀的地方。

2020-03-25
3
wine99
对于第一种(不用node风格的异步),如果这样写调用,抛出异常时也会报错,(去掉console.log('cry', res)的第二个参数res就没关系)怎么理解呢? interview( res => { if (res instanceof Error) { return console.log('cry', res) } console.log('smile', res) })

作者回复: 你的意思是代码会报错吗?这样看看不出代码有问题。 如果你的意思是这样的写法也能处理错误,那确实是的,只是官方觉得node风格的异步可读性更高。

2019-12-21
2
Geek_East
异步流程控制: 1. callback嵌套 -> 可能会造成call back hell, 代码可读性降低 2. Promise 3. Generator 4. Async/Await: Generator语法糖,本质跟Generator一致 是不是现在流行的方式有Promise何async/await两种,老师可以给出用promise和async/await改写callback hell的例子吗?

作者回复: 下两节就是了

2019-11-10
Geek_East
callback是不是可以理解为两个callstack的沟通工具

作者回复: 沟通这个词不太严谨。不过从写代码的人的思路上说,我觉得也可以

2019-11-10
2
ttsunami
我把interview函数里的setTimeout去掉了,发现也抓不到Error? why?

作者回复: 得看看你的代码是不是写了其他的导致产生异步回调的行为,导致error在另一个事件循环抛出了。又或者是真的没有抛错…

2019-10-26
giteebravo
setTimeout 中的错误为什么会抛向全局,最终导致程序退出呢? 在 throw 时是可以捕获到错误的,为什么不呢?

作者回复: 这个例子里的情况是捕获不到的,你可以试试

2019-10-09
2
Glee
请问作者用的vscode的主题是什么?看着好简约,风格很喜欢。

作者回复: 默认的light主题

2019-10-08
收起评论