あと締め切りまで2週間くらいなので、アプリとしての体裁を整えているところである。
現在は列車ロケーション情報や路線情報はdct:validを考慮して読み込むようにしている。node.jsのsetTimeoutとかの精度が意外に良いのでちょっとびっくりもしている。まあ数十ms単位の揺れはあるだろうが、ゲームでもないしこれで十分だろう。次のデータを読み込むタイミングは(dct:valid - 現在時間)となる。これは通常であればsetTimeout()
を使うのだろうけれども、今回はQ.delay()
を使って実装してみている。ただdct:validがどうも現在時間よりも過去の時間を返すという問題が若干残っていて、その対応は必要だが。
今回このAPIをいじったことでd3.jsやq.jsの理解が進んだのがうれしい。今後他のAPIいじりに役に立つだろうと思っている。
promiseを使った非同期処理の実装ってハマるとわけわかんなくなるんだけども、すっきりと書けるし思い通りに動作するとなんとも言えない達成感を得ることができるのでとても楽しい。