pythonやrubyやPHPと同じ土俵でjavascriptが使えるようになりました。
サーバサイドjavascriptについて語りましょう。
node.js - googleが開発したV8エンジン上で実行できる処理系
http://nodejs.org/
io.js - node.js 互換で Joyent の影響からの脱却を目指す処理系
http://iojs.org/
Rhino - JVM上で実行できる処理系
https://developer.mozilla.org/ja/Rhino
io.js の経緯
http://stackoverflow.com/questions/27309412/what-is-the-difference-between-node-js-and-io-js
javascriptはrubyと比較してもかなり速い
http://shootout.alioth.debian.org/u32/benchmark.php?test=all&lang=v8&lang2=yarv
基礎から学ぶNode.js
http://gihyo.jp/dev/serial/01/nodejs
node.jsの概要とアプリケーション開発の準備
http://gihyo.jp/dev/serial/01/realtimeweb/0002
前スレ
【node.js】サーバサイドjavascript 3【io.js】(c)2ch.net
http://echo.2ch.net/test/read.cgi/tech/1419673207/
【node.js】サーバサイドjavascript 2【Rhino】
http://peace.2ch.net/test/read.cgi/tech/1358937029/
【node.js】サーバサイドjavascript【Rhino】
http://toro.2ch.net/test/read.cgi/tech/1310087535/
【node.js】サーバサイドjavascript 4【io.js】 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
2016/04/11(月) 16:28:34.52ID:ORuOCkHy
387デフォルトの名無しさん
2017/03/29(水) 07:57:57.41ID:KsdrIF6a expressでlistenしているサーバーの443ポートに、socket.ioをねじ込むことはできますか?
httpsしか許可していないLAN環境で使いたいためです。
httpsしか許可していないLAN環境で使いたいためです。
388デフォルトの名無しさん
2017/03/29(水) 08:25:41.12ID:go5sII7e 無理です
389デフォルトの名無しさん
2017/03/29(水) 08:56:34.12ID:GhOdSF7q >>387
普通にできるんじゃね?
普通にできるんじゃね?
390デフォルトの名無しさん
2017/03/29(水) 09:06:05.10ID:KsdrIF6a391デフォルトの名無しさん
2017/03/29(水) 09:18:00.82ID:KsdrIF6a392デフォルトの名無しさん
2017/03/29(水) 11:56:09.16ID:GhOdSF7q >>391
expressのserverをioの引数にしてlistnするだけじゃなかったっけ?
expressのserverをioの引数にしてlistnするだけじゃなかったっけ?
393デフォルトの名無しさん
2017/03/29(水) 12:15:17.04ID:KsdrIF6a394デフォルトの名無しさん
2017/03/29(水) 13:18:48.28ID:KsdrIF6a こんな感じであっさりとできました。すげー!
keysはSSLの証明書ファイルとかです。
ex = require('express');
app = ex();
... some js ...
sv = https.createServer(keys, app).listen(port, bind);
io = require('socket.io').listen(sv);
ありがとうございました!!
keysはSSLの証明書ファイルとかです。
ex = require('express');
app = ex();
... some js ...
sv = https.createServer(keys, app).listen(port, bind);
io = require('socket.io').listen(sv);
ありがとうございました!!
395デフォルトの名無しさん
2017/04/01(土) 17:53:04.82ID:y/KMs3zV Node.js@Windowsです。
spawnを使ってexpectのようなことってできないんでしょうか?
例えば以下のように、stdoutに「Y/N」が出力されたら「y」と答えるようなことがしたいのですが…。
const spawn= require('child_process').spawn;
const de = spawn('del', [ '/p', 'foo' ], { shell: true });
de.stdout.on('data', (data) => {
if (data.toString().indexOf('Y/N') !== -1)
de.stdin.write('y'); // ???
});
spawnを使ってexpectのようなことってできないんでしょうか?
例えば以下のように、stdoutに「Y/N」が出力されたら「y」と答えるようなことがしたいのですが…。
const spawn= require('child_process').spawn;
const de = spawn('del', [ '/p', 'foo' ], { shell: true });
de.stdout.on('data', (data) => {
if (data.toString().indexOf('Y/N') !== -1)
de.stdin.write('y'); // ???
});
396デフォルトの名無しさん
2017/04/02(日) 01:44:35.81ID:FpSI1UN2 next.jsってjsコードをクライアントでもサーバでも動くように書かないとだめなの?
例えば以下のような条件を入れてサーバとクライアントで処理を分岐することはできるけど
typeof window === `undefined`
そもそもimportについてはどうすればいいの?
fsがないって怒られんるだけどサードパーティのライブラリが依存してたら使わなくてもエラーになっちゃうし。
例えば以下のような条件を入れてサーバとクライアントで処理を分岐することはできるけど
typeof window === `undefined`
そもそもimportについてはどうすればいいの?
fsがないって怒られんるだけどサードパーティのライブラリが依存してたら使わなくてもエラーになっちゃうし。
397デフォルトの名無しさん
2017/04/02(日) 17:23:56.57ID:FpSI1UN2 react naitive躓きました
react-naitive init hogehoge
ってやってプロジェクト作ろうとするとdoneと表示されてもプロンプトが戻ってこない。
nodejsはanyenvを使って最新を入れてます。
ctrc+cで無理やり戻すと当然プロジェクトはできていないので何もできない。
react-naitive init hogehoge
ってやってプロジェクト作ろうとするとdoneと表示されてもプロンプトが戻ってこない。
nodejsはanyenvを使って最新を入れてます。
ctrc+cで無理やり戻すと当然プロジェクトはできていないので何もできない。
398デフォルトの名無しさん
2017/04/02(日) 19:13:35.17ID:FpSI1UN2 >>397
自己解決しました
自己解決しました
399デフォルトの名無しさん
2017/04/02(日) 20:42:34.04ID:FuCfSbZi nodeたのしんでる?
400デフォルトの名無しさん
2017/04/02(日) 22:53:02.06ID:0PLfOFLS まだ勉強し始めなんだけどコールバック地獄を抜けたらPromiseラップ地獄が始まってる気がするゾ
401デフォルトの名無しさん
2017/04/02(日) 23:49:36.07ID:jk9X28Xe その先にはasync地獄が待ってるから早く進め
402デフォルトの名無しさん
2017/04/02(日) 23:55:00.71ID:TvISwdcG Rxで脱出できるよ
403デフォルトの名無しさん
2017/04/03(月) 00:08:15.13ID:pMsTDita RxのAsyncSubjectってPromiseと比較してどんなメリットがあるんだ?
async/awaitで使えないから不便と思う
async/awaitで使えないから不便と思う
404デフォルトの名無しさん
2017/04/03(月) 00:37:17.85ID:UPqV6+1g callback地獄なんか近づかずにpromiseとasync await始めたほうがいい。
promise抑えてからじゃないとasync await使えないから、promiseは必須な
promise抑えてからじゃないとasync await使えないから、promiseは必須な
405デフォルトの名無しさん
2017/04/03(月) 00:44:19.88ID:UPqV6+1g rxはreact nativeあたりと組み合わせるとどうなんだろうね?
coldとhotって概念があったり意外とつまずきやすい。全てがstreamという概念は素敵そうだけどreactとうまく組み合わせられるんか?
coldとhotって概念があったり意外とつまずきやすい。全てがstreamという概念は素敵そうだけどreactとうまく組み合わせられるんか?
406デフォルトの名無しさん
2017/04/03(月) 00:47:12.84ID:YqyQZW/v async使い出すとやってくるtry catch地獄
407デフォルトの名無しさん
2017/04/03(月) 00:50:42.75ID:CTM8h4Rc コールバック地獄って無名関数でしか渡してないから問題なだけじゃね?
408デフォルトの名無しさん
2017/04/03(月) 01:10:13.39ID:MrxLrKt6 fs.readdir(source, function(err, files) {
if (err) {
console.log('Error finding files: ' + err)
} else {
files.forEach(function(filename, fileIndex) {
console.log(filename)
gm(source + filename).size(function(err, values) {
if (err) {
console.log('Error identifying file size: ' + err)
} else {
console.log(filename + ' : ' + values)
aspect = (values.width / values.height)
widths.forEach(function(width, widthIndex) {
height = Math.round(width / aspect)
console.log('resizing ' + filename + 'to ' + height + 'x' + height)
this.resize(width, height).write(destination + 'w' + width + '_' + filename, function(err) {
if (err) console.log('Error writing file: ' + err)
})
}.bind(this))
}
})
})
}
})
if (err) {
console.log('Error finding files: ' + err)
} else {
files.forEach(function(filename, fileIndex) {
console.log(filename)
gm(source + filename).size(function(err, values) {
if (err) {
console.log('Error identifying file size: ' + err)
} else {
console.log(filename + ' : ' + values)
aspect = (values.width / values.height)
widths.forEach(function(width, widthIndex) {
height = Math.round(width / aspect)
console.log('resizing ' + filename + 'to ' + height + 'x' + height)
this.resize(width, height).write(destination + 'w' + width + '_' + filename, function(err) {
if (err) console.log('Error writing file: ' + err)
})
}.bind(this))
}
})
})
}
})
409デフォルトの名無しさん
2017/04/03(月) 03:42:09.46ID:XYXk6jFX410デフォルトの名無しさん
2017/04/03(月) 03:53:47.87ID:CTM8h4Rc >>408
fs.readdir(source, func1)
var func1 = function(err, files) {
if (err) {
console.log('Error finding files: ' + err)
} else {
files.forEach(func2)
}
}
var func2 = function(filename, fileIndex) {
console.log(filename)
gm(source + filename).size(func4)
}
var func3 = function(width, widthIndex) {
height = Math.round(width / aspect)
console.log('resizing ' + filename + 'to ' + height + 'x' + height)
this.resize(width, height).write(destination + 'w' + width + '_' + filename, function(err) {
if (err) console.log('Error writing file: ' + err)
}
var func4 = function(err, values) {
if (err) {
console.log('Error identifying file size: ' + err)
} else {
console.log(filename + ' : ' + values)
aspect = (values.width / values.height)
widths.forEach(func3)
}.bind(this))
}
}
fs.readdir(source, func1)
var func1 = function(err, files) {
if (err) {
console.log('Error finding files: ' + err)
} else {
files.forEach(func2)
}
}
var func2 = function(filename, fileIndex) {
console.log(filename)
gm(source + filename).size(func4)
}
var func3 = function(width, widthIndex) {
height = Math.round(width / aspect)
console.log('resizing ' + filename + 'to ' + height + 'x' + height)
this.resize(width, height).write(destination + 'w' + width + '_' + filename, function(err) {
if (err) console.log('Error writing file: ' + err)
}
var func4 = function(err, values) {
if (err) {
console.log('Error identifying file size: ' + err)
} else {
console.log(filename + ' : ' + values)
aspect = (values.width / values.height)
widths.forEach(func3)
}.bind(this))
}
}
411デフォルトの名無しさん
2017/04/03(月) 15:48:27.07ID:UPqV6+1g >>409
redux学習中だけどRxJSと組み合わせると何が幸せになるん?
redux学習中だけどRxJSと組み合わせると何が幸せになるん?
412デフォルトの名無しさん
2017/04/03(月) 19:33:34.98ID:963+qoSh RPとFRPの区別がついてない奴を馬鹿にして粋がれるとか
413デフォルトの名無しさん
2017/04/03(月) 21:16:06.10ID:XYXk6jFX414デフォルトの名無しさん
2017/04/03(月) 21:22:08.20ID:MrxLrKt6 >>410
少し訂正。問題は適切な名前をつけるのが難しいところにあると思うね。
var func1 = function(err, files) {
if (err) {
console.log('Error finding files: ' + err)
} else {
files.forEach(func2)
}
}
var func2 = function(filename, fileIndex) {
console.log(filename)
gm(source + filename).size(func3)
}
var func3 = function(err, values) {
if (err) {
console.log('Error identifying file size: ' + err)
} else {
console.log(filename + ' : ' + values)
aspect = (values.width / values.height)
widths.forEach(func4.bind(this)))
}
}
var func4 = function(width, widthIndex) {
height = Math.round(width / aspect)
console.log('resizing ' + filename + 'to ' + height + 'x' + height)
this.resize(width, height).write(destination + 'w' + width + '_' + filename, func5)
}
var func5 = function(err) {
if (err) console.log('Error writing file: ' + err)
}
fs.readdir(source, func1)
少し訂正。問題は適切な名前をつけるのが難しいところにあると思うね。
var func1 = function(err, files) {
if (err) {
console.log('Error finding files: ' + err)
} else {
files.forEach(func2)
}
}
var func2 = function(filename, fileIndex) {
console.log(filename)
gm(source + filename).size(func3)
}
var func3 = function(err, values) {
if (err) {
console.log('Error identifying file size: ' + err)
} else {
console.log(filename + ' : ' + values)
aspect = (values.width / values.height)
widths.forEach(func4.bind(this)))
}
}
var func4 = function(width, widthIndex) {
height = Math.round(width / aspect)
console.log('resizing ' + filename + 'to ' + height + 'x' + height)
this.resize(width, height).write(destination + 'w' + width + '_' + filename, func5)
}
var func5 = function(err) {
if (err) console.log('Error writing file: ' + err)
}
fs.readdir(source, func1)
415デフォルトの名無しさん
2017/04/03(月) 23:44:03.74ID:1+ofpVMn electronというかjsでデスクトップアプリって流行ると思いますか?
416デフォルトの名無しさん
2017/04/03(月) 23:49:14.81ID:fhkbvCOs そもそもデスクトップアプリが今日日流行らんような
417デフォルトの名無しさん
2017/04/04(火) 00:42:57.27ID:P+kSkPRB418デフォルトの名無しさん
2017/04/04(火) 00:47:36.02ID:P+kSkPRB >>415
reactnativeでデスクトップアプリが作れるようになったほうがいいと思うけどね。性能面でも。
electronで結構キラーアプリは出てるから使えて損はない。
chromeOSが復活しないかな。
アプリごとにchromeが中で動いてるのって無駄な気がするんだよね
reactnativeでデスクトップアプリが作れるようになったほうがいいと思うけどね。性能面でも。
electronで結構キラーアプリは出てるから使えて損はない。
chromeOSが復活しないかな。
アプリごとにchromeが中で動いてるのって無駄な気がするんだよね
419デフォルトの名無しさん
2017/04/04(火) 01:25:34.52ID:K8Tf42DL WEB+DB vol.97 の特集が、React
WEB+DB vol.94 の特集が、Kotlin, Electron
WEB+DB vol.94 の特集が、Kotlin, Electron
420デフォルトの名無しさん
2017/04/04(火) 01:35:05.25ID:y0lCbigz421デフォルトの名無しさん
2017/04/04(火) 03:08:30.98ID:QcgfrUUh RxJSをみてるとJavaScriptにPromise入れるのは
もっと慎重にやるべきだったと思うね
もっと慎重にやるべきだったと思うね
422デフォルトの名無しさん
2017/04/05(水) 00:42:45.34ID:wcVK36T3 reduxは非同期処理入れるのにミドルウエアが必要でその中の候補としてrxjsがあるってこと?
非同期処理は多用するんだからミドルウエア無しで対応しろよ
非同期処理は多用するんだからミドルウエア無しで対応しろよ
423デフォルトの名無しさん
2017/04/05(水) 01:59:50.23ID:T1xSqOuQ >>422
違うyo
違うyo
424デフォルトの名無しさん
2017/04/05(水) 02:29:41.05ID:kU4Jv4wh 非同期の方法がたくさんあるからビルトインにしてないんだろ
RxJSが使いたい→redux-observable
generaterが使いたい→redux-saga
Promiseが使いたい→redux-promise
好きなのを選べる
RxJSが使いたい→redux-observable
generaterが使いたい→redux-saga
Promiseが使いたい→redux-promise
好きなのを選べる
425デフォルトの名無しさん
2017/04/05(水) 09:43:00.09ID:ObdYHa+p rxは嫌いな奴は本当に嫌いなのでデフォルトにすると人死にが出る
426デフォルトの名無しさん
2017/04/05(水) 18:20:05.80ID:6P7JyL2t 猫は炬燵で丸くなる
427デフォルトの名無しさん
2017/04/05(水) 20:06:36.76ID:zmBGqA0p ReactとRx同時に使ったら、サイズが大きいのが気になりませんか?
428デフォルトの名無しさん
2017/04/06(木) 14:59:39.46ID:TGfMJct9429デフォルトの名無しさん
2017/04/06(木) 17:23:22.82ID:udT44U5Z Rxってコンセプトがシンプルなのにいざ使おうとするとライブラリのインターフェースは複雑で、シンドってならない?
430デフォルトの名無しさん
2017/04/06(木) 20:16:24.28ID:rNIgAdOn >>428
でも結局Observableになるんだろ?
でも結局Observableになるんだろ?
431デフォルトの名無しさん
2017/04/06(木) 20:20:21.49ID:rNIgAdOn Fetch APIがPromiseベースなので、処理がキャンセルできなくて困ったしな。
Fetch APIの戻り値はObservableに変更すべき。
Fetch APIの戻り値はObservableに変更すべき。
432デフォルトの名無しさん
2017/04/06(木) 20:23:20.40ID:rNIgAdOn433デフォルトの名無しさん
2017/04/07(金) 00:20:55.58ID:W6kcLwca >>430
おいおい大丈夫か??
PromiseはPromiseで、ObservableはObservableで必要だよ
いいか?
ObがあればPrが要らないと言うのは
ジェネレーター関数があれば関数が要らないと言ってるのと同じことだぞ
おいおい大丈夫か??
PromiseはPromiseで、ObservableはObservableで必要だよ
いいか?
ObがあればPrが要らないと言うのは
ジェネレーター関数があれば関数が要らないと言ってるのと同じことだぞ
434デフォルトの名無しさん
2017/04/07(金) 01:10:39.92ID:muVw6N7l 配列があればnumberはいらない、的な
435デフォルトの名無しさん
2017/04/07(金) 01:27:24.68ID:E9+XPTIr 関数とジェネレータ関数の関係とはちょっと違う気がするが
まあ言いたいことはわかる
まあ言いたいことはわかる
436デフォルトの名無しさん
2017/04/07(金) 01:53:54.75ID:feQdKcc1437デフォルトの名無しさん
2017/04/07(金) 02:08:35.05ID:muVw6N7l promiseは単発、observableは連発
連発は単発を包含してるが最適とは限らない
連発は単発を包含してるが最適とは限らない
438デフォルトの名無しさん
2017/04/07(金) 02:12:06.86ID:xCtKbZyH completeしか発生しないObservable = Promise
そもそも非同期=時間がかかる処理なのだから、
必然的に途中でキャンセルしたくなるのが普通。
キャンセルができない時点でPromiseは片手落ち
そもそも非同期=時間がかかる処理なのだから、
必然的に途中でキャンセルしたくなるのが普通。
キャンセルができない時点でPromiseは片手落ち
439デフォルトの名無しさん
2017/04/07(金) 02:20:36.15ID:MrQDMpDH440デフォルトの名無しさん
2017/04/07(金) 02:25:12.94ID:MrQDMpDH >>438
Netflixとかなら動画を取り扱うからキャンセルできたほうがいいけど、
他の案件でも必要か?適材適所でしょう。
なんでもストリームとして取り扱うRxは宣言的な記述になるけど、
それが読みやすいかというと、
俺はpromise とasync awaitの方が読みやすい。
Netflixとかなら動画を取り扱うからキャンセルできたほうがいいけど、
他の案件でも必要か?適材適所でしょう。
なんでもストリームとして取り扱うRxは宣言的な記述になるけど、
それが読みやすいかというと、
俺はpromise とasync awaitの方が読みやすい。
441デフォルトの名無しさん
2017/04/07(金) 02:48:44.21ID:ZOMGhg3k RxのObservableと廃案になったObject.observeが混在してる件
442デフォルトの名無しさん
2017/04/07(金) 02:51:12.64ID:ZOMGhg3k 多機能があれば単機能はいらない
そんなふうに思って(ry
そんなふうに思って(ry
443デフォルトの名無しさん
2017/04/07(金) 03:29:00.04ID:MrQDMpDH >>441
えっ。違うのかそれ。解ってなかった。すまぬ
えっ。違うのかそれ。解ってなかった。すまぬ
444デフォルトの名無しさん
2017/04/07(金) 03:40:41.83ID:7WaVyHOC RxのObservableはnodeのReadable Stream (flowing mode) みたいなもん
445デフォルトの名無しさん
2017/04/07(金) 07:20:07.56ID:Bfn8G5Of someがあればeveryは要らないって話?
446デフォルトの名無しさん
2017/04/07(金) 09:40:29.94ID:xCtKbZyH447デフォルトの名無しさん
2017/04/07(金) 09:44:07.30ID:xCtKbZyH448デフォルトの名無しさん
2017/04/07(金) 10:06:57.71ID:NIm6zjXF 必要になるとは限らない
そもそもキャンセルの方法がないものも多い
そもそもキャンセルの方法がないものも多い
449デフォルトの名無しさん
2017/04/07(金) 10:50:07.00ID:a3tdoMh+ promiseでは全てのケースをカバーできない→正しい
だからpromiseはいらない→間違い
だからpromiseはいらない→間違い
450デフォルトの名無しさん
2017/04/07(金) 11:38:12.33ID:MrQDMpDH でもPromiseだからこそasync awaitを駆使して同期プログラミングっポイ見た目でかけるわけで。
そこはRxではむりでしょ?そもそも宣言的な記述なウリなんだろうけども。
まぁ結局一人で開発だったらドッチもあってもいいけど
複数人プロジェクトだとRxは使いづらいわな。
そこはRxではむりでしょ?そもそも宣言的な記述なウリなんだろうけども。
まぁ結局一人で開発だったらドッチもあってもいいけど
複数人プロジェクトだとRxは使いづらいわな。
451デフォルトの名無しさん
2017/04/07(金) 11:54:59.99ID:5+HcG4Iv Observeを束ねて全部処理が終わったら終了処理をしたいんだけど、どうやったらいいんだろう
452デフォルトの名無しさん
2017/04/07(金) 12:16:24.62ID:dJwAVcRG 全部zipすれば
453デフォルトの名無しさん
2017/04/07(金) 12:28:20.19ID:Fuvg5lKD Httpリクエスト…Promise
websocket…Observable
websocket…Observable
454デフォルトの名無しさん
2017/04/07(金) 13:19:55.32ID:MrQDMpDH んでRx使ったやつで良いプロジェクトってあるの?
RxSwift使ってたときは良いプロジェクトが見当たらなくて
汚い設計になってしまった。
RxSwift使ってたときは良いプロジェクトが見当たらなくて
汚い設計になってしまった。
455デフォルトの名無しさん
2017/04/07(金) 13:59:32.72ID:0MVaqOPa >>449
これな
これな
456デフォルトの名無しさん
2017/04/07(金) 14:44:51.56ID:PRiizMve 要る要らないは個人の考えや開発スタイルによるものだしなぁ
457デフォルトの名無しさん
2017/04/07(金) 17:45:00.18ID:7PhLdANq >>452
やってみる
やってみる
458デフォルトの名無しさん
2017/04/07(金) 18:11:21.26ID:W6kcLwca つうかキャンセルだけならCancelablePromise案もあるし、
実際はキャンセルが内蔵されていると不都合があるのでCancelToken案のように
仕組みを外部に用意するのがベストだからPromiseは今のままで良いと思うよ
あと因みに例で挙がってたfetchはキャンセル出来る。
キャンセルする必要があるような重たいファイルをDLするときは
Stream使うだろうから、その場合rs側にcancelメソッドがある。
実際はキャンセルが内蔵されていると不都合があるのでCancelToken案のように
仕組みを外部に用意するのがベストだからPromiseは今のままで良いと思うよ
あと因みに例で挙がってたfetchはキャンセル出来る。
キャンセルする必要があるような重たいファイルをDLするときは
Stream使うだろうから、その場合rs側にcancelメソッドがある。
459デフォルトの名無しさん
2017/04/07(金) 18:13:30.99ID:W6kcLwca 逆に言うと、もしfetchがプロミスレベルでキャンセルに対応した場合、
こういうStream何かとの兼ね合いはどうするのかって話になる。
自動でrs.cancelが呼ばれるようにするのか、それともclosed例外吐くようにするのか。
やっぱりCancelTokenのように外側から突き刺す形が一番良いよ。
こういうStream何かとの兼ね合いはどうするのかって話になる。
自動でrs.cancelが呼ばれるようにするのか、それともclosed例外吐くようにするのか。
やっぱりCancelTokenのように外側から突き刺す形が一番良いよ。
460デフォルトの名無しさん
2017/04/07(金) 21:38:04.53ID:M/7BCwbh なんかの勉強会でcancelable promiseの標準化は頓挫したと聞いた
461デフォルトの名無しさん
2017/04/07(金) 21:50:33.96ID:M/7BCwbh462デフォルトの名無しさん
2017/04/07(金) 23:33:00.86ID:xCtKbZyH >>449
promiseでは全てのケースをカバーできない→正しい
だからpromiseはいらない→そんなこと言ってない
Observableでpromiseのケースをカバーできる→正しい
だからpromiseはいらない→こう言っている
promiseでは全てのケースをカバーできない→正しい
だからpromiseはいらない→そんなこと言ってない
Observableでpromiseのケースをカバーできる→正しい
だからpromiseはいらない→こう言っている
463デフォルトの名無しさん
2017/04/07(金) 23:33:50.39ID:xCtKbZyH464デフォルトの名無しさん
2017/04/07(金) 23:52:45.97ID:OQDmCCRm promiseで十分なケースでわざわざobservable使うメリットあんのかよ
465デフォルトの名無しさん
2017/04/07(金) 23:55:32.50ID:xCtKbZyH >>464
promiseとobservableはインターフェースが違うから互換性がない。
だからライブラリを作るならば両方に対応しなければならない。
またtoPromise()などでobservableからPromiseに変更するなんて
面倒なことをしなければならない場合もある。
promiseとobservableの両方に対応しなくて良いのがメリットだ
promiseとobservableはインターフェースが違うから互換性がない。
だからライブラリを作るならば両方に対応しなければならない。
またtoPromise()などでobservableからPromiseに変更するなんて
面倒なことをしなければならない場合もある。
promiseとobservableの両方に対応しなくて良いのがメリットだ
466デフォルトの名無しさん
2017/04/07(金) 23:57:21.56ID:D3WCz+HD >>461
そこはキャンセルしてたでしょ!
そこはキャンセルしてたでしょ!
467デフォルトの名無しさん
2017/04/08(土) 00:03:38.77ID:x261ON0r468デフォルトの名無しさん
2017/04/08(土) 00:07:31.07ID:Ibdd+rg/ >>467
殆どの要件でcancelは必要だから結局Fetch APIみたいに
cancelするための別の仕様が出てくる。
だから最初からobservable一本にしておけばいいという話
急ぎすぎてPromiseを標準化してしまったのは黒歴史
Promiseを使ったFetch APIも黒歴史
殆どの要件でcancelは必要だから結局Fetch APIみたいに
cancelするための別の仕様が出てくる。
だから最初からobservable一本にしておけばいいという話
急ぎすぎてPromiseを標準化してしまったのは黒歴史
Promiseを使ったFetch APIも黒歴史
469デフォルトの名無しさん
2017/04/08(土) 00:15:58.80ID:cNZiPnVn >>468
fetchのことしか考えてねーのかよ
fsの非同期apiはキャンセル不可だがこれobservableにする意味あんのかよ
fetchが黒歴史なのは正しい
promiseじゃなくstreamだろってsubstackも突っ込んでた
fetchのことしか考えてねーのかよ
fsの非同期apiはキャンセル不可だがこれobservableにする意味あんのかよ
fetchが黒歴史なのは正しい
promiseじゃなくstreamだろってsubstackも突っ込んでた
470デフォルトの名無しさん
2017/04/08(土) 00:23:48.13ID:Ibdd+rg/ > fsの非同期apiはキャンセル不可だがこれobservableにする意味あんのかよ
あると思うけど?
俺は200MBを超えるファイル×数十個を "並列で" サーバーに送信したことがあるのだが、
もしメモリに全部読み込んでいたら、マシンによってはメモリ不足になっただろう。
だから特定のチャンクごとに読み込んで送信していたわけだが、当然キャンセルもしたいし
どのファイルが何%処理完了したかの状況も表示したくなる。
そんときはループを使って、チャンクごとにデータを読み取って処理したわけだが、
もしfsがobservableであれば、メモリに全部読み取ることなく
一定のチャンクごとに処理する簡単な方法も提供されただろう。
あると思うけど?
俺は200MBを超えるファイル×数十個を "並列で" サーバーに送信したことがあるのだが、
もしメモリに全部読み込んでいたら、マシンによってはメモリ不足になっただろう。
だから特定のチャンクごとに読み込んで送信していたわけだが、当然キャンセルもしたいし
どのファイルが何%処理完了したかの状況も表示したくなる。
そんときはループを使って、チャンクごとにデータを読み取って処理したわけだが、
もしfsがobservableであれば、メモリに全部読み取ることなく
一定のチャンクごとに処理する簡単な方法も提供されただろう。
471デフォルトの名無しさん
2017/04/08(土) 00:28:43.38ID:Ibdd+rg/ setTimeoutなんかもclearTimeoutみたいにキャンセルするメソッドがあるし、
時間がかかるからこそ非同期にしているわけで、時間がかかる処理を
キャンセルしたいことがありえないなんてAPIが本当にあるのだろうか?
時間がかかるからこそ非同期にしているわけで、時間がかかる処理を
キャンセルしたいことがありえないなんてAPIが本当にあるのだろうか?
472デフォルトの名無しさん
2017/04/08(土) 00:35:11.20ID:cNZiPnVn473デフォルトの名無しさん
2017/04/08(土) 00:37:42.94ID:Ibdd+rg/474デフォルトの名無しさん
2017/04/08(土) 00:38:09.39ID:cNZiPnVn >>470
つかてめーnodeやってねーだろ
つかてめーnodeやってねーだろ
475デフォルトの名無しさん
2017/04/08(土) 00:38:37.44ID:cNZiPnVn >>473
スレ違い死ね
スレ違い死ね
476デフォルトの名無しさん
2017/04/08(土) 00:38:44.04ID:Ibdd+rg/ そういやブラウザではFile APIだったなw
477デフォルトの名無しさん
2017/04/08(土) 00:39:23.93ID:i0oWHzgI >>471
時間がかかる処理をキャンセルじゃなくて、待つのをキャンセルするじゃね?
時間がかかる処理をキャンセルじゃなくて、待つのをキャンセルするじゃね?
478デフォルトの名無しさん
2017/04/08(土) 00:44:38.31ID:Ibdd+rg/ >>477
それは言い方の違いでしかないよ
nodeでcallbackを使うやつの話であれば、そもそもなんで
nodeはPromiseを使わなかったのか?の話になるだろ。
それはcallbackを使う方が速いのと、
何度もイベントを発生する必要があるものがあるからだろうな。
つまり、Promiseでは要件に耐えられないから
Promiseではなくcallbackを使ったんだよ。
fs.fstatでは何度もイベントが発生するわけじゃなくても、
何度もイベントが発生することが可能なcallbackを使っている。
それは一度しかイベントが発生しなくてもPromiseではなく
Observableを使ってよいのと同じ考えだ。
それは言い方の違いでしかないよ
nodeでcallbackを使うやつの話であれば、そもそもなんで
nodeはPromiseを使わなかったのか?の話になるだろ。
それはcallbackを使う方が速いのと、
何度もイベントを発生する必要があるものがあるからだろうな。
つまり、Promiseでは要件に耐えられないから
Promiseではなくcallbackを使ったんだよ。
fs.fstatでは何度もイベントが発生するわけじゃなくても、
何度もイベントが発生することが可能なcallbackを使っている。
それは一度しかイベントが発生しなくてもPromiseではなく
Observableを使ってよいのと同じ考えだ。
479デフォルトの名無しさん
2017/04/08(土) 00:49:22.15ID:cNZiPnVn480デフォルトの名無しさん
2017/04/08(土) 00:51:43.82ID:Ibdd+rg/ http://stackoverflow.com/questions/30299613/why-does-nodejs-not-use-promise-for-the-readfile-api
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に変えたって書いてあるんだぞ
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:37.05ID:Ibdd+rg/ (JavaScriptの)Promiseはいつできたんだっけな?
前に調べたんだが忘れたな。
ここを見る限り2009年なのは間違いないが。
http://wiki.commonjs.org/index.php?title=Promises&oldid=516
前に調べたんだが忘れたな。
ここを見る限り2009年なのは間違いないが。
http://wiki.commonjs.org/index.php?title=Promises&oldid=516
482デフォルトの名無しさん
2017/04/08(土) 00:55:18.13ID:cNZiPnVn そのpromiseはes6のpromiseとは別物だ
483デフォルトの名無しさん
2017/04/08(土) 00:56:40.01ID:cNZiPnVn nodeでobservableに相当するのはstream
fs.fstatはstreamを使わない
それが答え
以上
fs.fstatはstreamを使わない
それが答え
以上
484デフォルトの名無しさん
2017/04/08(土) 01:03:43.79ID:Ibdd+rg/485デフォルトの名無しさん
2017/04/08(土) 01:05:41.12ID:Ibdd+rg/ > nodeでobservableに相当するのはstream
ちなみに、streamを知らない人に説明しておくと、
streamが使ってるのはPromiseではなくcallback
ちなみに、streamを知らない人に説明しておくと、
streamが使ってるのはPromiseではなくcallback
486デフォルトの名無しさん
2017/04/08(土) 01:10:44.04ID:cNZiPnVn >>484
promiseを使わない理由がキャンセルできないからじゃないのは分かってんのかよ
システムコールレベルでキャンセルする方法がないのにobservableにするメリットあんのかって問いに答えてねーだろ
nodeは単発にcallback、連発にstreamで使い分けてる
大は小を兼ねるとは限らないんだよ
promiseを使わない理由がキャンセルできないからじゃないのは分かってんのかよ
システムコールレベルでキャンセルする方法がないのにobservableにするメリットあんのかって問いに答えてねーだろ
nodeは単発にcallback、連発にstreamで使い分けてる
大は小を兼ねるとは限らないんだよ
487デフォルトの名無しさん
2017/04/08(土) 01:24:00.13ID:Ibdd+rg/ システムコールレベルって何の話?
Win32APIとかレベルの話してるの?
独自用語で話すんなよ
Win32APIとかレベルの話してるの?
独自用語で話すんなよ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 石破茂氏、「高市さんよくぞ言った」の空気に待った 存立危機事態…考えてはいても「公の場で言うことか」:東京新聞 [少考さん★]
- トランプ氏、日中の対立を懸念 首相に「エスカレート回避を」−日本政府関係者(共同) ★2 [蚤の市★]
- 中国外務省「正式な発言撤回なければ受け入れず」 高市首相は台湾有事「存立危機事態」言及せずも「言及しないことと撤回は別問題」★2 [ぐれ★]
- 【大阪】「ここで死にたい」タワーマンション計画に高齢住民の悲痛な叫び 梅田・茶屋町で進む再開発計画 ロフト閉店で 梅田の東側は… [ぐれ★]
- 【おっぱい】「女性を見つけた瞬間に揉みたいという衝動にかられ…」路上で25歳女性に不同意わいせつ行為か 21歳土木作業員の男を逮捕 [nita★]
- トランプ氏、日中対立激化は望まず 直接関与に日本政府内に危機感も [蚤の市★]
- 10月の有効求人倍率1.18倍(前月比-0.02)、新規求人数-6.4%、厚生労働省「人手不足でも応募者が少なく、求人疲れが起きている」 [256556981]
- イーノック、そんな装備で大丈夫か?
- 水道料金、来年から3倍wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww [329329848]
- LinuxにテラタームとかでSSH繋げるのとリモートデスクトップで繋げるので操作性に違い出るよな
- 【悲報】国民健康保険料、2026年から引き上げ決定WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
- 世界「た、高市早苗ちゃん、あまり中国を刺激しないで…」高市早苗「うるさいですね…」ピョンピョン [402859164]
