@
walkingway 多谢推荐!
好巧,我这两天刚写了一个解决 JavaScript 异步的方案,是通过语法分析 + generator 实现的。可以在开发时彻底不用关心异步问题,用起来很简单,也不用 async.js 这样的异步流程控制类库。
GitHub 上有个比较直观好懂的示例:
https://github.com/luin/teascript再举个常见的例子是:
User.findById(15, function(err, user) {
if (user) {
user.getProjects(function(err, projects) {
res.json({ user: user, projects: projects });
});
} else {
res.status(404).json({ error: 'not found' });
}
});
可以用 TeaScript 改成:
var user = User.findById(15, ~);
if (user) {
res.json({ user: user, projects: user.getProjects(~) });
} else {
res.status(404).json({ error: 'not found' });
}
目前这个项目还比较阳春,我还在抓紧完善。准备在我的下个项目中用上它,请大家多多提意见提交代码和 Star ^^
---
因为 TeaScript 用了 generator,所以目前来看只能在 Node 上用。如果楼主是前端的话,还是用 Promise 和 async.js 比较好,重一点的 IcedCoffeeScript 也可以,不过不用 generator 的话确实很难有完美的方案。