【发布时间】:2013-08-05 09:53:01
【问题描述】:
我在 CoffeeScript 类中有以下函数:
use: (db, fn) ->
fs.exists db, (exists) =>
if exists?
@db = db
@_fetch()
else
fs.writeFile db, {}, (err) =>
if err
err
else
@db = db
@_fetch()
困扰我的是我不得不写两次@db = db 和@_fetch()。我必须这样做的原因是else 子句调用了异步的fs.writeFile。因此,我必须将这两行放在writeFile 的回调中,以确保它们不会过早触发。
但是,有没有办法清理它并写下那些行?目前只有两行,但是如果存在10行的回调呢?会变得一团糟,不是吗?
也欢迎对这段代码提供任何其他反馈。不太确定错误处理(目前只返回err..)。
【问题讨论】:
-
fn是你的回电吗?
标签: javascript node.js asynchronous callback coffeescript