メモ
なんとなく昨日作成したソレをリファクタリングするなど。でもこれってあまりよくない流れだな。あるいは某ホストで gitosis 動かして push 契機で deploy するような仕組みを作ってみようかなとか完全に現実トウヒな考えが脳をよぎる。
- update hook でスクリプト起動
- deploy 先にて git pull する
- npm install とか
- あら? これだけで良いのかな?
とは言え、こちらに手を付けるのは非常にマズい。
ので
余計なことに手を染めず、もう一つの機能の盛り込みに着手。
ただ、さっき手を入れた部分については動作試験しといた方が良いな。と、言いつつなんとかアルファな状態になったので、クローズドなリポジトリ方面に push 完了。
次にとりかかりたいのですが、もう一つの方もほぼ同じ構造で手続きの記述ができるので何とかしたい、というか javascript 字下げが激しすぎて微妙だなぁ。
何が違うかというとアクセスするパスとフィルタが違うだけなので記述を纏めることは可能なんですが、ここは上記と同様で別途にした方が良さげ。
非同期な http 通信
ええと、Node の http モジュールは非同期通信で全部のレスポンスを受信したら呼び出される callback とかがあったりなんかするんですけど、graphCall 手続きから戻される手続きに渡す手続きはこの callback の中で呼び出されます。
んーと、何と言えば良いか分かりませんが、今ってざっくりベースで書くと
session.graphCall(path)(function(result) { // 手続きの記述 }); var mail; try{ mail = nodemailer.send_mail(message, function(error, success) { // 手続きの記述 }); catch(e) { console.log("Caught Exception", e); }
みたいなカンジになってて、これって微妙だな、と。あ、違うや。よくよく見てみたらこうなっておりました。
session.graphCall(path)(function(result) { result.data.forEach(function(data) { // 手続きの記述 }); var mail; try{ mail = nodemailer.send_mail(message, function(error, success) { // 手続きの記述 }); } catch(e) { console.log("Caught Exception", e); } });
ええと、誤解の原因は字下げがええ加減だったことによります。いかんなぁ。
とは言え
実は result.data な配列を手繰っていく中でもっかい graphCall 手続きを呼び出さないといけない、という事態が起きてて困ってる次第ッス。
てか、スデに繰り返しの中で graphCall 呼び出す実装になってますね。まだ動かしてないけど。基本的に callback の中、という形で処理自体を分散させる必要があるみたいですね。
ということは graphCall のネストが三つくらいになるのか。あと、コピー元のソレも記述を修正する必要があるのかなぁ。
ということで
そろそろ晩メシの支度に着手。
# リアルタイム的にはスデに対応完了した状態でエントリ投入してます