有兴趣准备学 node.js,最担心的是多线程和回调地狱

2016-04-09 00:36:07 +08:00
 yamada

你们是用哪些第三方库来处理这 2 个问题的 ?

5560 次点击
所在节点    Node.js
17 条回复
zwh8800
2016-04-09 00:37:26 +08:00
nodejs 是没有多线程问题的吧。
theohateonion
2016-04-09 00:43:00 +08:00
nodejs 没有多线程。还有你都没学 nodejs 为什么就开始考虑回调地狱了?
rokeyzki
2016-04-09 00:48:11 +08:00
Node.js 没有多线程

担心回调地狱,可以用 Generator 函数啊

如果是做 web 后端,推荐 Koa 框架
yamada
2016-04-09 01:08:02 +08:00
那应该怎么充分的利用多核?
techmoe
2016-04-09 01:09:02 +08:00
充分利用多核是解释器那部分的事情吧
shuding
2016-04-09 01:10:35 +08:00
Cluster: https://nodejs.org/api/cluster.html
至于回调地狱,完全可以直接上手 Generator 或者 Promise 。
zhuangzhuang1988
2016-04-09 01:17:18 +08:00
async/await 大法好, 而且你可以用, https://github.com/Microsoft/ChakraCore 引擎级别支持.
Srar
2016-04-09 02:39:18 +08:00
pm2 start app -i max 按照 CPU 线程开启多个 node 实例
janxin
2016-04-09 08:25:10 +08:00
第一个问题没有
第二个问题有伪解决方案,还是要等 async/await 标准化才能最终解决
hxtheone
2016-04-09 09:14:13 +08:00
上 Promise 吧,感觉是目前避免回调地狱的最简单的方式了,很多第三方库也已经原生支持 then 方法
forever139
2016-04-09 10:28:31 +08:00
1. 以前是 pm2 来弥补了不足,后来官方自己推荐用 [Cluster]( https://nodejs.org/api/cluster.html)
2. 以前用 async 包(es5),以及 bluebird (Promise 第三方实现 es6 的标准)。还有大家说的 async/await 那个是 es7 的东西
magicdawn
2016-04-09 11:22:09 +08:00
使用 ES7 async/await 的思想,使用 ES6 generator 来写代码。
类似
python3.4 的 asyncio + yield
python3.5 的 async + await

去看 co.wrap & bluebird.coroutine 即可,一样的东西。
laoyur
2016-04-09 11:22:14 +08:00
我浅尝辄止地学了一段时间后,还是觉得转投 Python 阵营比较适合我
welefen
2016-04-09 12:57:03 +08:00
推荐使用 ThinkJS ,完全没有回调地狱的问题
123s
2016-04-12 09:55:25 +08:00
@zhuangzhuang1988 ChakraCore 是不是也可以做桌面应用,如果 ms 可以提供一些系统级接口就好了
JiangShenMing
2016-04-15 08:59:37 +08:00
呵呵
forl
2016-04-19 10:41:24 +08:00
关于回调,还是建议用 Promise 吧,已经是 ES6 标准了, NodeJS 也已经原生支持了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/269700

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX