[過去ログ] 【node.js】サーバサイドjavascript 4【io.js】 [無断転載禁止]©2ch.net (1002レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) レス栞 あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
468(1): 2017/04/08(土)00:07 ID:Ibdd+rg/(1/16) AAS
>>467
殆どの要件でcancelは必要だから結局Fetch APIみたいに
cancelするための別の仕様が出てくる。
だから最初からobservable一本にしておけばいいという話
急ぎすぎてPromiseを標準化してしまったのは黒歴史
Promiseを使ったFetch APIも黒歴史
470(2): 2017/04/08(土)00:23 ID:Ibdd+rg/(2/16) AAS
> fsの非同期apiはキャンセル不可だがこれobservableにする意味あんのかよ
あると思うけど?
俺は200MBを超えるファイル×数十個を "並列で" サーバーに送信したことがあるのだが、
もしメモリに全部読み込んでいたら、マシンによってはメモリ不足になっただろう。
だから特定のチャンクごとに読み込んで送信していたわけだが、当然キャンセルもしたいし
どのファイルが何%処理完了したかの状況も表示したくなる。
そんときはループを使って、チャンクごとにデータを読み取って処理したわけだが、
もしfsがobservableであれば、メモリに全部読み取ることなく
一定のチャンクごとに処理する簡単な方法も提供されただろう。
471(1): 2017/04/08(土)00:28 ID:Ibdd+rg/(3/16) AAS
setTimeoutなんかもclearTimeoutみたいにキャンセルするメソッドがあるし、
時間がかかるからこそ非同期にしているわけで、時間がかかる処理を
キャンセルしたいことがありえないなんてAPIが本当にあるのだろうか?
473(1): 2017/04/08(土)00:37 ID:Ibdd+rg/(4/16) AAS
>>472
俺が話をしているのはブラウザ版だ
nodeの話はしてねーよw
476: 2017/04/08(土)00:38 ID:Ibdd+rg/(5/16) AAS
そういやブラウザではFile APIだったなw
478(1): 2017/04/08(土)00:44 ID:Ibdd+rg/(6/16) AAS
>>477
それは言い方の違いでしかないよ
nodeでcallbackを使うやつの話であれば、そもそもなんで
nodeはPromiseを使わなかったのか?の話になるだろ。
それはcallbackを使う方が速いのと、
何度もイベントを発生する必要があるものがあるからだろうな。
つまり、Promiseでは要件に耐えられないから
Promiseではなくcallbackを使ったんだよ。
fs.fstatでは何度もイベントが発生するわけじゃなくても、
何度もイベントが発生することが可能なcallbackを使っている。
省2
480: 2017/04/08(土)00:51 ID:Ibdd+rg/(7/16) AAS
外部リンク:stackoverflow.com
Node’s early iterations used Promises in its nonblocking API. However, in February 2010,
Ryan Dahl made the decision to switch to the now-familiar callback(err, results...)
format, on the grounds that Promises are a higher-level construct that belongs in “userland.”
英語わかるか?
Nodeは最初Promise使っていて、callbackに変えたって書いてあるんだぞ
481: 2017/04/08(土)00:54 ID:Ibdd+rg/(8/16) AAS
(JavaScriptの)Promiseはいつできたんだっけな?
前に調べたんだが忘れたな。
ここを見る限り2009年なのは間違いないが。
外部リンク[php]:wiki.commonjs.org
484(1): 2017/04/08(土)01:03 ID:Ibdd+rg/(9/16) AAS
>>482
それは当たり前だが、Promiseを捨てた理由は同じだ
>>483
fs.fstatはPromiseを使わない。
それが答えだろう?w
485: 2017/04/08(土)01:05 ID:Ibdd+rg/(10/16) AAS
> nodeでobservableに相当するのはstream
ちなみに、streamを知らない人に説明しておくと、
streamが使ってるのはPromiseではなくcallback
487(1): 2017/04/08(土)01:24 ID:Ibdd+rg/(11/16) AAS
システムコールレベルって何の話?
Win32APIとかレベルの話してるの?
独自用語で話すんなよ
488: 2017/04/08(土)01:25 ID:Ibdd+rg/(12/16) AAS
ふむ
Windows Vista での Win32 I/O キャンセル サポート
外部リンク[aspx]:msdn.microsoft.com
490(1): 2017/04/08(土)01:28 ID:Ibdd+rg/(13/16) AAS
単発だからってキャンセルする必要が無いことにはならないんだが?
言ってる意味わかる?
491: 2017/04/08(土)01:31 ID:Ibdd+rg/(14/16) AAS
Observableが得意なのはキャンセルだけじゃなくて
並列処理もなんで、fs.fstatを並列で実行したいときにも
簡単にかけるというメリットも有るな
496: 2017/04/08(土)01:49 ID:Ibdd+rg/(15/16) AAS
>>493
> 「キャンセルする必要がない場合は」
それはまずないだろうねw
499(1): 2017/04/08(土)02:35 ID:Ibdd+rg/(16/16) AAS
>>498
分かってないなw
なんでシステムコールの話がでてくるんだってことだよ。
nodeのAPIと、OSのシステムコールを
一対一で直接結びつける必要はないっつーの
nodeのAPIは単純な一命令でも、内部の実装は
何回もシステムコール呼んだって良いわけだ。
それが分かってないから、お前はシステムコールが
キャンセルできるかどうかなんて言い出したんだろ
こっちは全部お見通しだってーの
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 1.350s*