[過去ログ] + JavaScript の質問用スレッド vol.122 + [無断転載禁止]©2ch.net (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
40(1): (ワッチョイ eb5b-wh/5) 2016/09/02(金)00:40 ID:oKN/Shh+0(1/4) AAS
>>39
いやPromiseで書くのはあくまで処理の事前予約だよな?
そこは変更不能だし、同期的に確定する。
もちろん中身の関数は実際には後に呼ばれるけど、
一般的にそれを「遅延評価」とは表現しない。
俺の想定しているコードなら、>>30をwhileに変えただけに近い。
とりあえず君の言い分が正しいのなら、>>30は間違いだということになるが、そうか?
41(5): ◆SEdFBOkLSw (アウアウ Sacf-RETc) 2016/09/02(金)01:01 ID:nUqjDcPOa(2/2) AAS
>>40
あー、そういう事か。いや、間違ってない。面目ないな。
入れ替えると言うか、それごと変えるという事か。
それは再帰とどっちが良いのかは目的次第かもしれん。
俺は残り回数渡して再帰すると思うわ。setTimeoutで包んで。
42: (ワッチョイ eb5b-wh/5) 2016/09/02(金)01:23 ID:oKN/Shh+0(2/4) AAS
>>41
>>23が「動的に」って言っているからそこは微妙なのだけど、
まあ初心者にそこまで厳密に言っても仕方ないからね。
多分あの質問なら単純に「可変長ループ」が分からないのだと思った。
それはさておき、>>28のコードは面白いとは思うが、
>>28を読める奴がこの質問はないだろってこと。
Promiseなら突っ込んだ時点でそこまでの処理は確定だが、
>>28なら途中の関数内で処理を変更出来る。
これを「動的に」と表現するのは自然ではあるが、
これを記述しようとする奴が>>24の質問はない。(と見た)
43(2): (ワッチョイ f3ce-wh/5) 2016/09/02(金)01:52 ID:gFIXdWf60(2/3) AAS
> setTimeoutで包んで。
またなぁw 余計な一言。
なんでsetTimeoutを含まなきゃならんのか。
これも何も分かってない証拠よ。
理屈はわからないけど、これやったら動いた!
正しい理解をせずに長年やったやつの末路だなw
44(1): (ワッチョイ eb5b-wh/5) 2016/09/02(金)02:32 ID:oKN/Shh+0(3/4) AAS
んー、まあ俺は>>41の使い方ならsetTimeoutで包んだ方が妥当だと思うがな。
ただし俺はC派だからそういう余計な処理は出来るだけ入れたくなくて、
俺は実際にはほぼ直接呼び出しにしているが、その分気を使わなければならなくなる。
そういう面倒なことは無しにしようってのが昨今のプログラミングスタイルだろ。
つーか、お前も若いんだと思うが、噛み付きまくるのはやめい。
setTimeoutで包むかどうかは上位のコーディングポリシーの話だから、
「常に」どっちがいいとかいうことはないし、ここで白黒つけられることでもないよ。
むしろそこに噛み付いた時点で無知だと晒しているようなもん。
まあそれでも「技術的に」やり合うのならどうぞご自由にだが。
45: (ワッチョイ 3fa7-wh/5) 2016/09/02(金)03:01 ID:L3z5oHD70(1) AAS
ご自由にされちゃたまらんわ
やり合うんだったら>>27の隔離スレでやってくれ
46(1): ◆SEdFBOkLSw (アウアウ Sacf-RETc) 2016/09/02(金)07:39 ID:HDM5TMU3a(1) AAS
>>43
よく理解して実装してるにきまってるでしょ。
自分の経験書かないでよ。
47(1): (オッペケ Sr8f-RETc) 2016/09/02(金)08:28 ID:ZAub+DJjr(1/2) AAS
>>46
いや、setTimeoutは不要でしょ
遅延処理をするわけでもないのになぜ使う必要があるのさ?
48(7): ◆SEdFBOkLSw (スププ Sd5f-RETc) 2016/09/02(金)08:40 ID:Nu/77N8Pd(1/8) AAS
>>47
生粋のネイティブなPromiseなら、非同期になることは保証されてるけど、
どんなPromiseっぽいものかわからん現状安全側に倒すよ。
次の処理始める、ではなくて、
今もし、今回の呼び出しでキュー溜まってるならそれ終わらしてからやりたいし、
コールスタックも深くなるじゃん。
49(1): (オッペケ Sr8f-RETc) 2016/09/02(金)08:45 ID:ZAub+DJjr(2/2) AAS
>>48
非同期の逐次処理で重要なのはコールバックでしょ
非同期処理が完了したことを確認するにはコールバックするしかない
seTimeoutはコールバックを楽に実装する機能がないわけで何の役にも立ってない
50(2): (ワッチョイ efa5-w0F2) 2016/09/02(金)11:47 ID:RZSd/NSC0(1/2) AAS
こんにちは、初歩的な話で恐縮ですが、
textareaの入力から複数行、行頭スペース・連続スペースを含む文字列を取得したいのですがJS側で何とかすることはできませんか?
51: (ワッチョイ 739d-Es5g) 2016/09/02(金)11:52 ID:d9/aWFQj0(1) AAS
>>50
できるよ
52(4): ◆SEdFBOkLSw (スププ Sd5f-RETc) 2016/09/02(金)11:56 ID:Nu/77N8Pd(2/8) AAS
>>49
thenの中の話だが。
promiseのそれっぽいポリフィルだと、即時に関数呼び出しするから、
promiseの中でsetTimeoutしてた場合、そいつらが走る前に、次のPromiseが走るよね。
そうじゃなくて、キューイングすることで、もし何かが実行されていてもその後に実行されるじゃん。
あと、コールバックが書けない、は一番ナンセンスじゃない?
配列の最後のPromiseが、「コールバックを呼び出す」ってPromiseであれば良い。
>>50
それぞれ取りたい感じ?
valueで全体は取れるけど、あとは正規表現でマッチした部分使えば良いんじゃないかな。
53: (ワッチョイ efa5-w0F2) 2016/09/02(金)12:59 ID:RZSd/NSC0(2/2) AAS
取得ではなく出力の時に に置換するのを忘れていたことに気づきました……
お騒がせしました……
54(1): (オッペケ Sr8f-RETc) 2016/09/02(金)15:53 ID:XGUTMOjhr(1) AAS
>>52
君はPromiseとsetTimeputを激しく誤解している気がしてならない
> promiseの中でsetTimeoutしてた場合、そいつらが走る前に、次のPromiseが走るよね。
そんなことはない
そもそも、非同期処理を上手く活用することを目的としているPromiseにそれが出来ないわけがないだろう
やり方は既出だが、ちゃんと理解してないのではないか?
> そうじゃなくて、キューイングすることで、もし何かが実行されていてもその後に実行されるじゃん。
君の言葉を借りるなら非同期処理に対してsetTimeputを適用したらsetTimeputの数だけキューが増えると思うんだが
setTimeputは同期処理を非同期処理にするのに有効だが、非同期処理にsetTimeputを使っても遅延処理以上の結果は得られない
> あと、コールバックが書けない、は一番ナンセンスじゃない?
省1
55(1): ◆SEdFBOkLSw (スププ Sd5f-RETc) 2016/09/02(金)16:23 ID:Nu/77N8Pd(3/8) AAS
>>54
だからそれっぽいポリフィルだって言ってんじゃん。
日本語読めないならもう書かんほうが良いよ。
キューが増えていいんだよ。
promiseの中でsetTimeout(..,0)された物を先に動かしたいだけだから。
お前実装見ずに概念で話してない?
56(1): (オッペケ Sr8f-RETc) 2016/09/02(金)18:24 ID:Z6ER1HHhr(1/4) AAS
>>55
それはPolyfillがおかしいだけだろ
おかしなPolyfillを基準にされてま困る
setTimeoutは役に立たんという意見もスルーするし、お前の方こそ日本語を読め
57(1): ◆SEdFBOkLSw (スププ Sd5f-RETc) 2016/09/02(金)18:33 ID:Nu/77N8Pd(4/8) AAS
>>56
あ、うん。
最初からそう言ってんじゃん。
まぁ、thenを持ったオブジェクトさえ返せば別にPromiseで無くともその辺誤魔化しつつ走ってくれる便利なやつなんだけどね。書いた関数。
なんでsetTimeoutするかの理解出来てないんだったら、同じようにcatch書いたときにどう例外オブジェクト飛んでくるか見たら?
catchで、setTimeoutしてthrowし直すとか割と普通っしょ。
コールスタックって言ったのになぁ。
58(3): (ワッチョイ 739d-Es5g) 2016/09/02(金)18:36 ID:YHEl/7lL0(1) AAS
そもそもpromiseってそんなに必要か?
59(1): (オッペケ Sr8f-RETc) 2016/09/02(金)18:40 ID:Z6ER1HHhr(2/4) AAS
>>57
Promiseが理解できていればsetTimeoutが不要なことがわかるはずなんだがな
「それっぽいPolyfill」とやらも具体例が皆無
必要なら完璧なzPolyfillを探すなり、自分でPolyfillを書くなりやれと
お前さんのPolyfillらしきものがsetTimeoutなのかもしれんが、無駄が多すぎだろ
上下前次1-新書関写板覧索設栞歴
あと 943 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.023s