【node.js】サーバサイドjavascript 5【Nashorn】 (796レス)
1-

506
(1): 2020/09/01(火)21:59 ID:usFRsaVF(1/2) AAS
進捗の書き込みはシリアルにやればいいよね?
「80%完了」の後に「70%完了」が来ても無視すればいい
507
(1): 2020/09/01(火)22:02 ID:QR4OvP6I(3/3) AAS
>>506
無視するようにしてるんだよ
whereで大小比較して
更新する数の方が小さかったら更新されないように
してる
でもDB上の数値が減るんだよ。何故だ?
508: 2020/09/01(火)22:05 ID:3AXmEbq5(1) AAS
コードも無しで言われても知らんわ
509: 2020/09/01(火)22:28 ID:usFRsaVF(2/2) AAS
>>507
シリアルに書いてないからでしょ
今実行中の進捗報告の書き込みが完了してから
次の進捗報告の書き込みをする

理解できないほうが謎
510: 2020/09/02(水)02:59 ID:bHRnrATQ(1) AAS
7月入ってからageながら変なこと書いてんの同じ人っぽいな
挫けないでがんばれよ
511: 2020/09/02(水)12:32 ID:U40YU3HI(1) AAS
並列処理しなければ良い

1つが、確実に終わってから、
次のものを処理する
512: 2020/09/02(水)13:19 ID:FrAP3fk+(1) AAS
回答者まで同じ内容を繰り返し始めたw
513: 2020/09/02(水)21:31 ID:C0O9Iab7(1) AAS
>>504
こうなる原因が今日特定出来た
ループ自体が多重に並列に動作してた
1つのfor文が動いてるんだと思ってたら
ログをよくよく見たらfor文自体が
3つくらい並列で動いてた
勝手に多重実行になった原因は、
MySQLが処理しきれなくなってタイムアウトが
発生したあと
nodeが自動で(promiseの仕様?)最初から
リクエストの処理をリトライするようで
ピタゴラスイッチのアルゴリズム体操見たいに
なってたわw

初歩的な質問ですが
サーバに飛んできたリクエストだけを中断するには
exitが正解ですか?
returnが正解ですか?
res.end(); ですか?
サーバ自体は止めたくありませんが
ある関数自体を中断するだけでなく
そのリクエストだけ大元から全部中断したいです
514: 2020/09/02(水)22:07 ID:m9UvO5Rn(1) AAS
お前がコード書くのをやめる、が正解
515
(1): 2020/09/07(月)13:52 ID:KQEAaFWf(1/2) AAS
AA省
516: 2020/09/07(月)14:38 ID:UUesL9I9(1/4) AAS
説明できますかって何だよ挑発してんのかよ
resolve()は必ずイベントループに戻ってからthen()のコールバックが呼ばれるからに決まってるだろがボケカス
マイクロタスクキューでも調べやがれポンコツ
517: 2020/09/07(月)15:25 ID:Egt+Qwmp(1/2) AAS
0
4
1
6
2
3
5

とか

0
4
6
1
2
3
5

にならない?
518: 2020/09/07(月)15:45 ID:UUesL9I9(2/4) AAS
ならない
Promiseコンストラクタはコールバックを即時実行する

MDN
executor 関数は Promise 実装により resolve 関数と reject 関数が渡されて即座に実行されます (Promise コンストラクターが作成したオブジェクトを返すよりも前に executor は呼び出されます)。
519: 2020/09/07(月)17:09 ID:3uGG3SyO(1) AAS
>>515
コールスタックが空にならないと、各種キューに入ってる処理は実行されない

最初にconsole.log(“6”);まで処理したらスタックが空になる
その状態でsetTimeoutのタイマーが発動してキューにコールバック関数が入る
スタックが空なのでキューの1番目にあるsetTimeoutのコールバック関数がスタックに積まれて呼び出される
この関数がreturnするまではスタックは空にならないので
それまではキューに入った処理を実行するタイミングはない

console.log(“3”);まで実行してreturnしたらスタックが空になるので
その後、各種キューに入ってる処理があれば実行される
520: 2020/09/07(月)17:21 ID:KQEAaFWf(2/2) AAS
試してみたんですが、setTimeout()で指定している関数の中で、
resolve(111);
resolve(222);
resolve(333);
としてから、
sample.then( function(value) {
  console.log( "5, value=", value );
});
とすると、
5, value = 111
とだけ表示されて、222, 333 の分は表示されないんですが、どういった
理由なのでしょう。
521: 2020/09/07(月)17:33 ID:Egt+Qwmp(2/2) AAS
お前はもう死んでいる
522: 2020/09/07(月)17:39 ID:UUesL9I9(3/4) AAS
最初にresolve()した時点でそのPromiseの値は確定するから
つかスレに書き込む暇があるならドキュメントでも何でもいいから学習してPromiseがどういうもんか理解してから試せよ
Promiseってのは「将来確定する"値"」を表現するもんなんだよ
523: 2020/09/07(月)17:52 ID:neZOTIA1(1) AAS
一旦解決したPromiseを再度変更出来たらそれは改竄と呼ぶべきだな
reject(111);
resolve(222);
reject(333);
これは成功したのか失敗したのかどっちよ?
524: 2020/09/07(月)18:07 ID:ieMFgaPK(1) AAS
これ近頃よく見る相手にしちゃダメなやつだな
525: 2020/09/07(月)18:08 ID:UUesL9I9(4/4) AAS
最初のreject()で失敗が確定する
Promiseの状態はpending→settledと変わる
settledにはfulfilledとfailedがある
resolve()でfulfilled、reject()でfailedになる
1-
あと 271 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.019s