コールバック
使い方
code:chottomasi.js
asyncfileread('a.txt', function(fda) {
asyncfileread('b.txt', function(fdb) {
asyncfileread('c.txt', function(fdc) {
asyncfileread('d.txt', function(fdd) {
asyncfileread('e.txt', function(fde) {
asyncfileread('f.txt', function(fdf) {
// something process
})
})
})
})
})
})
ループしたい場合は終了条件を自力で管理して再帰する
でもたしかに、引数の()の中に関数の{}を入れることによってインデントが深くなることはよくある メソッドチェーン版who.icon
code:method_chain.js
asyncfileread("a.txt")
.then((fda) => {
return asyncfileread("b.txt").then((b) => fda, b); })
return asyncfileread("c.txt").then((b) => fda, fdb, b); })
})
})
})
console.log(fda,fdb,fdc,fdd,fde,fdf)
});
メソッドチェーンはデータハンドリングがむずい
コールバック関数の存在によって、既存のクラスやメソッドの挙動を簡単にカスタマイズできてとても良いMijinko_SD.icon もっとマシな書き方とかは考えればあるのかもしれないけれど
逆にコールバックが存在しない言語で同じことをしようとすると結構だるい 既存の処理の内部にちょっと動作を追加しようとしただけで新しいクラスに継承しなきゃいけないのはマジであほくさい 言語の思想によるのではbsahd.icon
コールバックはイベントの受取に便利bsahd.icon
え?処理完了を検知する方法がないから、処理開始から10ms待機して終了時の処理を実行してるんですか…?
onCloseとか無いんですねかわいそうに
sleepで10msごとに処理状態を確認するとかbsahd.icon