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()
私を悩ませているのは、私が1回@db = db
と@_fetch()
2回書かなければならなかったことです。私がこれをしなければならなかった理由は、else
句がfs.writeFile
which を非同期で呼び出すためです。したがって、これらの 2 行をwriteFile
のコールバック内に配置して、すぐに起動しないようにする必要がありました。
ただし、これをクリーンアップしてそれらの行を書き込む方法はありますか? 現時点では 2 行しかありませんが、コールバックが 10 行存在するとどうなるでしょうか。ぐちゃぐちゃになりませんか?
この小さなコードに関するその他のフィードバックも歓迎します。エラー処理についてはよくわかりません(ただ今戻っerr
てきたところです..)。