- 1 名前:デフォルトの名無しさん [2018/02/13(火) 22:21:33.91 ID:moEhrPrC.net]
- pythonやrubyやPHPと同じ土俵でjavascriptが使えるようになりました。
サーバサイドjavascriptについて語りましょう。 node.js - googleが開発したV8エンジン上で実行できる処理系 nodejs.org/ ayo.js - node.js 互換で Rod の影響からの脱却を目指す処理系 https://github.com/ayojs/ayo Nashorn - Java8 からRhinoに代わって同梱されているJavaScriptエンジン www.oracle.com/webfolder/technetwork/jp/javamagazine/Java-JA17-Nashorn.pdf ayo.js の経緯 https://web.archive.org/web/20170821212745/https://github.com/nodejs/TSC/issues/310 javascriptはrubyと比較してもかなり速い shootout.alioth.debian.org/u32/benchmark.php?test=all&lang=v8&lang2=yarv 基礎から学ぶNode.js gihyo.jp/dev/serial/01/nodejs node.jsの概要とアプリケーション開発の準備 gihyo.jp/dev/serial/01/realtimeweb/0002 前スレ 【node.js】サーバサイドjavascript 4【io.js】 mevius.5ch.net/test/read.cgi/tech/1460359714/ 【node.js】サーバサイドjavascript 3【io.js】 echo.2ch.net/test/read.cgi/tech/1419673207/ 【node.js】サーバサイドjavascript 2【Rhino】 peace.2ch.net/test/read.cgi/tech/1358937029/ 【node.js】サーバサイドjavascript【Rhino】 toro.2ch.net/test/read.cgi/tech/1310087535/
- 422 名前:デフォルトの名無しさん mailto:sage [2020/05/19(火) 12:42:47 ID:482topUH.net]
- linterはdenoが公式に内蔵する可能性高い
formatterはすでに入ってる
- 423 名前:デフォルトの名無しさん mailto:sage [2020/05/23(土) 17:14:18 ID:0ZrNuMGI.net]
- nodeにもTLA着たけどREPLじゃ動かんな
仕様ではESM限定だった気がするけどDevTools辺りではできてなかったっけ
- 424 名前:デフォルトの名無しさん mailto:sage [2020/05/24(日) 21:34:47 ID:4uKrfJjq.net]
- やっぱ周辺ツールが整わないと使いづれえな
- 425 名前:デフォルトの名無しさん mailto:sage [2020/05/27(水) 00:55:30 ID:Qj2nGC3D.net]
- >>418
https://youtu.be/lK384YQx-h0?t=203
- 426 名前:デフォルトの名無しさん mailto:sage [2020/06/20(土) 18:47:10.97 ID:3Kl5NtPD.net]
- Why deps.ts and mod.ts is BAD in Deno
https://dev.to/wongjiahau/why-deps-ts-and-mod-ts-is-bad-in-deno-bjo
- 427 名前:デフォルトの名無しさん mailto:sage [2020/06/23(火) 05:08:14.54 ID:XbLXAbNL.net]
- こんな感じのコードでresolveは実行されてもpromiseが伝達しないケースがあるんだけど
内部的にはどういう理屈でそうなってるの? new Promise(function(resolve,reject){ eventemitter.on('hoge', function(){ this.removeAllListeners(); resolve(); }); });
- 428 名前:デフォルトの名無しさん mailto:sage [2020/06/23(火) 08:23:00.68 ID:OtlYTeas.net]
- お前が間違ってるだけに500億ペリカ
- 429 名前:デフォルトの名無しさん mailto:sage [2020/06/23(火) 09:23:44 ID:jyrEAGC5.net]
- >>427
伝達されないケースの具体例を出さないとわからんよ
- 430 名前:427 mailto:sage [2020/06/24(水) 01:09:40.37 ID:KrEfgFvd.net]
- 実際にはlistenerがasync関数で後から発火した他の同期listener内で先にresolve実行してた
そりゃ伝達しないわ…
- 431 名前:デフォルトの名無しさん mailto:sage [2020/07/03(金) 01:38:35 ID:0cCY6OI/.net]
- Web API実装の流れでNodeにEventTargetが来たけど使う人いる?
逆なら欲しかったけど
- 432 名前:デフォルトの名無しさん [2020/07/23(木) 10:30:41.88 ID:LlcoMZmJ.net]
- データベースからデータオブジェクトを
returnする関数をあたかも同期関数のように ただ実行するだけで戻り値を得られるように作りたいです。 DB情報取得関数定義内でasync await promise を使ってみましたが 戻り値がpromiseのpendingになってしまったので 仕方なく実行側でもpromiseを生成してラップして then()を使ってようやく戻り値を得られました。 しかし本来は実行側でpromiseとthenを使うことなく 戻り値を得たかったです どうすれば良いか教えてください。 あと関数定義内でresolveの実行とreturnがどう違うのか がわかりません。
- 433 名前:デフォルトの名無しさん mailto:sage [2020/07/23(木) 11:06:39 ID:MBVi+zLE.net]
- 頼むからコードで説明してくれ
似た質問多いけど非同期を同期にすることは不可能 やるなら呼出側の文脈をまるごと非同期にしてawait
- 434 名前:デフォルトの名無しさん mailto:sage [2020/07/23(木) 16:11:17.38 ID:+diZSvZW.net]
- まるごとも今ならTopLevelAwaitがあるから楽だね
callbackに渡されるresolveはpromiseを解決させるためのスイッチであってreturnではない Promiseに対する理解が曖昧なままDB扱う処理を書くのは危ないと思う
- 435 名前:デフォルトの名無しさん mailto:sage [2020/07/31(金) 16:11:51.42 ID:CGhJjJjO.net]
- ライブラリっつーのか?
Passportやexpress-sessionってどうやって見つけてきてるの?
- 436 名前:デフォルトの名無しさん [2020/08/04(火) 02:57:28 ID:vydsY05j.net]
- github express middleware やりたいことの英語
でググる
- 437 名前:デフォルトの名無しさん [2020/08/06(木) 20:05:58.89 ID:MUhDPlnI.net]
- cryptoで公開鍵ファイルつかって
暗号化したんですが 同じデータが毎回違う暗号になってしまいます。 原因を教えてください
- 438 名前:デフォルトの名無しさん mailto:sage [2020/08/07(金) 00:05:01 ID:TzYKRTqH.net]
- たぶん、時刻とか、何かランダムな要素を使っているのだろう
- 439 名前:デフォルトの名無しさん mailto:sage [2020/08/07(金) 19:32:20.45 ID:ysU+OJWY.net]
- 今後は大規模システム以外は全てJavaScriptだけで書ける夢のような未来が来るね。
- 440 名前:デフォルトの名無しさん mailto:sage [2020/08/07(金) 20:50:53.11 ID:TH1C+bUh.net]
- なんという地獄
- 441 名前:デフォルトの名無しさん [2020/08/08(土) 10:07:34.33 ID:noFfmCPy.net]
- >>437
salt iv
- 442 名前:デフォルトの名無しさん [2020/08/08(土) 14:52:32 ID:ciegX9N/.net]
- 非同期処理って普通に
バグと脆弱性の温床になるよね?
- 443 名前:デフォルトの名無しさん mailto:sage [2020/08/08(土) 17:42:04.42 ID:/vlgEPfS.net]
- その理解のまま触っていたらそうだろうね
- 444 名前:デフォルトの名無しさん [2020/08/08(土) 23:33:14 ID:f7NhkLiO.net]
- node.js 面白いな。久しぶりにおもしろい言語だ。
- 445 名前:デフォルトの名無しさん [2020/08/08(土) 23:34:04 ID:f7NhkLiO.net]
- PythonとかRubyとかPHPって面白いとか言われてるけど、正直イマイチだよ。
俺はPerlのが好き。
- 446 名前:デフォルトの名無しさん [2020/08/08(土) 23:46:39.64 ID:bKK8FlY/.net]
- サーバサイドで非同期で
IOやりたい状況なんてそうそうないよ。 ロギングくらいか とくにトランザクション処理で非同期に 動かれちゃうとほんと地獄 同期的な処理をする専用の DBアクセス ファイルIOアクセス ネットワークアクセス するライブラリを提供すべき 使用側でpromiseとかじゃなくて
- 447 名前:デフォルトの名無しさん [2020/08/08(土) 23:55:39.53 ID:OT1M6D83.net]
- 今一番熱いライブラリ。
https://ja.uncyclopedia.info/wiki/Progress_display
- 448 名前:デフォルトの名無しさん mailto:sage [2020/08/08(土) 23:56:53.43 ID:ZWuolq0D.net]
- >>444
言語じゃないけどな
- 449 名前:デフォルトの名無しさん [2020/08/08(土) 23:58:34.55 ID:OT1M6D83.net]
- ライブラリですね。
- 450 名前:デフォルトの名無しさん [2020/08/09(日) 00:40:28 ID:sb6ynJ/q.net]
- 違います
- 451 名前:デフォルトの名無しさん [2020/08/09(日) 00:51:05.32 ID:2tff8pgk.net]
- データベースですね。
- 452 名前:デフォルトの名無しさん mailto:sage [2020/08/09(日) 01:20:28 ID:8UfVx4ij.net]
- 違います
- 453 名前:デフォルトの名無しさん [2020/08/09(日) 01:48:00.71 ID:2tff8pgk.net]
- ゴミですね。
- 454 名前:デフォルトの名無しさん mailto:sage [2020/08/09(日) 12:06:37 ID:4gz4Sy4n.net]
- そ、違います
- 455 名前:デフォルトの名無しさん mailto:sage [2020/08/09(日) 13:10:04.80 ID:HdBz3xHm.net]
- nude.js ですね
- 456 名前:デフォルトの名無しさん [2020/08/09(日) 16:47:11.71 ID:sb6ynJ/q.net]
- https://www.moongift.jp/2012/02/20120211/
nude.jsは画像をCanvasで読み込んでヌード画像か否かを判定するソフトウェアです。 裸が見たい!たくさんの画像の中からとにかく裸を見たい!と思う人はnude.jsを自動実行してみると幸せになれるかも知れません。 https://github.com/pa7/nude.js/
- 457 名前:デフォルトの名無しさん [2020/08/11(火) 00:54:04.11 ID:jdRsH5YI.net]
- これまでの非同期対策手段の
やって欲しかったのはこういうことじゃないんだよ感 がやばい 本来求めてるのはコールバックの記述ないようにして 欲しいのと 余計な関数定義無しで処理を書きたいということ なのに Promiseやasync awaitがやってるのは 非同期処理をネストしなくて良くするだけで 肝心のコールバック記述や 余計な関数定義自体はなくならず、 それどころかこれらを使うと更にコードが複雑に なって可読性が下がってしまう。 そういうゴチャゴチャした部分を無くして欲しいんだよ。
- 458 名前:デフォルトの名無しさん mailto:sage [2020/08/11(火) 02:13:08.66 ID:DrUL4lPZ.net]
- >>457
具体的に理想系を書いてくれるか?
- 459 名前:デフォルトの名無しさん mailto:sage [2020/08/11(火) 06:51:02.02 ID:KjgiWsfP.net]
- WScript.sleep(1000);
- 460 名前:デフォルトの名無しさん mailto:sage [2020/08/11(火) 09:44:42 ID:DyHWpKfR.net]
- >>458
ボンッキュッボンッ!
- 461 名前:デフォルトの名無しさん mailto:sage [2020/08/11(火) 12:08:29 ID:HwJhgroD.net]
- 互換性ぶっ壊してでもコールバックなAPIをどうにかしてくれ
ってことならDenoじゃね
- 462 名前:デフォルトの名無しさん mailto:sage [2020/08/11(火) 12:31:29.28 ID:RcrtMjNU.net]
- >>457はコールバックだけじゃなくてPromiseも否定してね?
どういうものを期待してるのかわからんが、少なくともdenoじゃ解決にならんかと。
- 463 名前:デフォルトの名無しさん mailto:sage [2020/08/11(火) 13:28:07.94 ID:gDej+7HY.net]
- ならGoだろうな
コールバックも非同期処理もいらない さようなら
- 464 名前:デフォルトの名無しさん mailto:sage [2020/08/11(火) 13:50:34 ID:OsUriXGV.net]
- どうせメッセージパッシングに文句垂れるな決まってる
- 465 名前:デフォルトの名無しさん mailto:sage [2020/08/11(火) 13:51:16 ID:OsUriXGV.net]
- s/垂れるな/垂れるに/
- 466 名前:デフォルトの名無しさん [2020/08/11(火) 15:38:26.65 ID:jdRsH5YI.net]
- >>458
ごめんちょっとコールバック入っちゃったけど こんな感じがいい 「await」という単語は他に思い浮かばなかったから 真似しただけで別の単語でもなんでもいい 実際の「await」の処理とは無関係 await setTimeout( ()=>{}, 1000); console.log('1秒経過しました'); コールバック引数が欲しい場合 ver data = await $.ajax({省略}).done(); console.log('レスポンスを受信しました'); console.log(data);
- 467 名前:デフォルトの名無しさん [2020/08/11(火) 15:42:24.62 ID:jdRsH5YI.net]
- ↑varをverと書いてしまいました。
- 468 名前:デフォルトの名無しさん mailto:sage [2020/08/11(火) 15:50:28.89 ID:RcrtMjNU.net]
- 結局Promise化すれば解決する話に見えるが
中途半端なコールバックの存在が謎。
- 469 名前:デフォルトの名無しさん mailto:sage [2020/08/11(火) 16:25:16.36 ID:E31y9T9f.net]
- Promiseとasync/awaitで解決済みだよなぁ
const sleep = ms => new Promise(resolve => setTimeout(resolve, ms)) って用意するなりimportするなりしておけば await sleep(1000); console.log('1秒経過しました'); これだけやんけ $.ajaxとか書いちゃう知恵遅れさんだからしょうがないか
- 470 名前:デフォルトの名無しさん mailto:sage [2020/08/11(火) 17:12:35.72 ID:dI29r3/p.net]
- あんまりPromiseの事わかってなくて批判しちゃった感じかな。
- 471 名前:デフォルトの名無しさん mailto:sage [2020/08/11(火) 17:34:48.50 ID:DrUL4lPZ.net]
- >>467
スコープないのかよ ゴミくそ
- 472 名前:デフォルトの名無しさん mailto:sage [2020/08/11(火) 19:26:37.90 ID:HwJhgroD.net]
- 数行のコードじゃ意図が読み取り辛いけど
非同期関数を同期にしたいってコトなら絶対無理
- 473 名前:デフォルトの名無しさん mailto:sage [2020/08/11(火) 19:33:26.30 ID:GZz3NG8W.net]
- 非同期関数を同期関数のように呼び出せるのがasync/awaitだけどな
動作の話じゃなくてソースの見た目の話だろどうせ そんなこと気にするよりlet/const覚える方が先だぞ
- 474 名前:デフォルトの名無しさん mailto:sage [2020/08/12(水) 07:56:55.71 ID:XuneBSJh.net]
- promiseもasync/awaitも何も分かってないけど批判してたということだけは非常によく分かった
- 475 名前:デフォルトの名無しさん [2020/08/14(金) 21:41:29 ID:Fc7pCCli.net]
- どうでもいいけど
独自の概念や用語をバンバン押し付けてくる フレームワークは ゲロ以下の匂いがプンプンするぜぇーって思うわ PHP系の糞フレームワークに多い
- 476 名前:デフォルトの名無しさん mailto:sage [2020/08/14(金) 21:47:18.13 ID:970Aew80.net]
- >>475
逆に、独自の概念や用語を押し付けてこないフレームワークって例えば何?
- 477 名前:デフォルトの名無しさん mailto:sage [2020/08/14(金) 21:50:10.65 ID:B7DyCr2o.net]
- アセンブラ
- 478 名前:デフォルトの名無しさん [2020/08/14(金) 21:53:03.39 ID:Fc7pCCli.net]
- >>476
やっぱexpressかな? ララベルとかyiiとかは ファサードとかDIコンテナとか ゴミみたいな余計な用語出てきて腹立たしいわ
- 479 名前:デフォルトの名無しさん mailto:sage [2020/08/14(金) 21:56:59 ID:970Aew80.net]
- >>478
ファサードもDIコンテナも、フレームワーク独自の用語じゃなくてごくごく初歩的な一般用語では?
- 480 名前:デフォルトの名無しさん [2020/08/14(金) 22:07:25 ID:Fc7pCCli.net]
- >>479
そうだね。webとは関係ないよね webとは関係ない設計上の概念を Webフレームーワークが押し付けてくるのはおかしいよね フレームワークはルーティングと HTMLレンダだけやってりゃいい DBにもビジネスロジックにも出しゃばってくるべきでは無い とくにJavaをパクってるだけのPHPでそんな内容 吐き気がするに決まってるだろ
- 481 名前:デフォルトの名無しさん mailto:sage [2020/08/14(金) 22:24:17.70 ID:B01JOFDh.net]
- DIは、最初はめんどくさい仕組みだなって思うけど、
ある日突然納得感に包まれるぞ。
- 482 名前:デフォルトの名無しさん [2020/08/18(火) 21:29:27.81 ID:ZCkQ8Dn9.net]
- MySQLとかのDBアクセス
同期的にやってくれるライブラリないんか? fsはSync版あるやん
- 483 名前:デフォルトの名無しさん mailto:sage [2020/08/18(火) 21:50:58.81 ID:uzsO+4Q7.net]
- async/await使えばいいやろ
fsのsyncなんてお遊びかツールでしか使えんし
- 484 名前:デフォルトの名無しさん mailto:sage [2020/08/18(火) 21:58:10.75 ID:wak8Bz4V.net]
- もうjavascriptだけで出来ないことはない!
javascript最強! javascript最高! 今、javascriptの伝説が始まる!!!!!!
- 485 名前:デフォルトの名無しさん [2020/08/19(水) 04:18:53 ID:vidjSvBe.net]
- キッショ
- 486 名前:デフォルトの名無しさん [2020/08/20(木) 19:53:59.17 ID:KMfIHaw0.net]
- 真偽値が非同期になるとヤバイ
trueかfalseのどちらかかと 思っていた変数が pendingになっててif文の分岐に ミスがあったとかマジで勘弁 セキュリティやトランザクション処理が クリティカルな部分でこんなことやられたら叶わん
- 487 名前:デフォルトの名無しさん mailto:sage [2020/08/20(木) 20:05:16 ID:t5R+TL7j.net]
- ごめんよく分からないので
コードで頼む
- 488 名前:デフォルトの名無しさん mailto:sage [2020/08/20(木) 20:09:16 ID:AoU9HO21.net]
- 低脳はプログラマやめとけ
- 489 名前:デフォルトの名無しさん mailto:sage [2020/08/20(木) 20:16:29.65 ID:X1nNk3cj.net]
- >>486
それマルチスレッドの話じゃね?「非同期」つってもjavascriptのそれとは意味が違う。
- 490 名前:デフォルトの名無しさん mailto:sage [2020/08/20(木) 20:32:39 ID:tyNv301J.net]
- pendingは普通にPromiseの話やろ
Promiseを理解せず非同期のコード書くのが悪い
- 491 名前:デフォルトの名無しさん [2020/08/20(木) 20:41:23.02 ID:qjxJt4Hn.net]
- >>489
node.jsのスレだからJavaScriptの話なんだが nodeってシングルスレで合ってる? あと素人で申し訳ないが if文がある時もそれ以降のコードに勝手に進んじゃうの? たとえば if(非同期の真偽値メソッド() ){ return; } console.log('ifに該当したら逐次処理ならここには到達しないはず'); 逐次処理ならelseなしで処理を抜けることが出来るが、 非同期処理だと条件分岐も待ってくれないの? こういうのがかなり怖い
- 492 名前:デフォルトの名無しさん [2020/08/20(木) 20:44:17.20 ID:qjxJt4Hn.net]
- >>490
非同期のコードが書くの悪いって僕も書きたくないです。 でもデフォルトで非同期の関数ばかりですよね? ちょっとでも油断すると非同期になっちゃうんです もちろんasyncやawaitつけてるけど ついつけ忘れるといつの間にか非同期になってるんです。
- 493 名前:デフォルトの名無しさん mailto:sage [2020/08/20(木) 20:49:28.75 ID:AoU9HO21.net]
- await付け忘れるヤツが悪い
TypeScriptで型チェックしとけ
- 494 名前:デフォルトの名無しさん mailto:sage [2020/08/20(木) 21:17:24 ID:t5R+TL7j.net]
- >>491
if(await hoge())するだけ 何も難しいことない
- 495 名前:デフォルトの名無しさん [2020/08/20(木) 22:05:57.37 ID:wmqy4S/J.net]
- まぁそこは同期が基本から非同期が基本に頭切り替えないとね
- 496 名前:デフォルトの名無しさん mailto:sage [2020/08/20(木) 22:43:19.84 ID:tyNv301J.net]
- >>491
nodeに限らずJSは基本シングルスレッド JSで本格的にコード書くなら シングルスレッドでどうやって非同期や並行処理を実現してるのかを 最低限の知識として知っておく必要がある setTimeout(fn, 0)で渡したfnがどのタイミングで実行されるのかと同じ 少し詳しめのチュートリアルならだいだい解説してある
- 497 名前:デフォルトの名無しさん [2020/08/21(金) 00:43:07.71 ID:CMx879FZ.net]
- とは言え今ではスレッドも使えるから上手く利用したいところ。
シングルスレッドにこだわってコールバックの中で時間のかかる処理しちゃったら本末転倒。
- 498 名前:デフォルトの名無しさん mailto:sage [2020/08/21(金) 01:18:26.76 ID:RmDQK783.net]
- プロセスも使えるぞ。
せっかくだからV8 isolateも使いたいけどどうやるんだっけ…
- 499 名前:デフォルトの名無しさん mailto:sage [2020/08/21(金) 01:47:45.18 ID:fPne1yUC.net]
- workerが別スレッドのisolate
- 500 名前:デフォルトの名無しさん [2020/09/01(火) 20:38:22.47 ID:QR4OvP6I.net]
- nodeはバッチ処理にはマジで向いてないよな
ループ中に非同期発生すると ループ番号の順序性があべこべになるとか ヤバすぎる ループ外グローバル変数への 数値溜め込み処理とかどうなるんだこれ あと完了したと思ってた処理が 完了表示されただけで 実はまだ非同期で動作してたとかありそうで 怖すぎる
- 501 名前:デフォルトの名無しさん mailto:sage [2020/09/01(火) 20:42:12.06 ID:I2eVqLbl.net]
- 無能w
- 502 名前:デフォルトの名無しさん [2020/09/01(火) 20:43:25.87 ID:tH3NhyKR.net]
- >>500
アホ過ぎるwww
- 503 名前:デフォルトの名無しさん mailto:sage [2020/09/01(火) 20:58:34.78 ID:z4ASdXsC.net]
- >ループ中に非同期発生すると
まるで自然現象とか天災みたいな言い方
- 504 名前:デフォルトの名無しさん [2020/09/01(火) 21:12:04.15 ID:QR4OvP6I.net]
- すまん、俺は無能なんだわ
バッチ処理は終わるまで時間がかかるから プログレスバーとして 進捗報告として データベースの進捗状況テーブルへ 進行度をアップデートしてんだわ 毎ループ進捗報告しなくていいから %で余り算して定期的に 進捗をアップデートしてんだわ ところがその進捗報告DBアクセスで 非同期が発生してループの順序が乱れる 進捗状況の進行度が進んだり戻ったり トリッキーに変動するんだわ でもループの最後まで到達して完了すると 全てのデータ整合してんだわw なぜ中間状態だけこんなにトリッキーなのか謎
- 505 名前:デフォルトの名無しさん mailto:sage [2020/09/01(火) 21:24:55.53 ID:I2eVqLbl.net]
- コード書くのやめろ
- 506 名前:デフォルトの名無しさん mailto:sage [2020/09/01(火) 21:59:23 ID:usFRsaVF.net]
- 進捗の書き込みはシリアルにやればいいよね?
「80%完了」の後に「70%完了」が来ても無視すればいい
- 507 名前:デフォルトの名無しさん [2020/09/01(火) 22:02:04.20 ID:QR4OvP6I.net]
- >>506
無視するようにしてるんだよ whereで大小比較して 更新する数の方が小さかったら更新されないように してる でもDB上の数値が減るんだよ。何故だ?
- 508 名前:デフォルトの名無しさん mailto:sage [2020/09/01(火) 22:05:22.51 ID:3AXmEbq5.net]
- コードも無しで言われても知らんわ
- 509 名前:デフォルトの名無しさん mailto:sage [2020/09/01(火) 22:28:22.77 ID:usFRsaVF.net]
- >>507
シリアルに書いてないからでしょ 今実行中の進捗報告の書き込みが完了してから 次の進捗報告の書き込みをする 理解できないほうが謎
- 510 名前:デフォルトの名無しさん mailto:sage [2020/09/02(水) 02:59:56.27 ID:bHRnrATQ.net]
- 7月入ってからageながら変なこと書いてんの同じ人っぽいな
挫けないでがんばれよ
- 511 名前:デフォルトの名無しさん mailto:sage [2020/09/02(水) 12:32:41.24 ID:U40YU3HI.net]
- 並列処理しなければ良い
1つが、確実に終わってから、 次のものを処理する
- 512 名前:デフォルトの名無しさん mailto:sage [2020/09/02(水) 13:19:02.32 ID:FrAP3fk+.net]
- 回答者まで同じ内容を繰り返し始めたw
- 513 名前:デフォルトの名無しさん [2020/09/02(水) 21:31:48.71 ID:C0O9Iab7.net]
- >>504
こうなる原因が今日特定出来た ループ自体が多重に並列に動作してた 1つのfor文が動いてるんだと思ってたら ログをよくよく見たらfor文自体が 3つくらい並列で動いてた 勝手に多重実行になった原因は、 MySQLが処理しきれなくなってタイムアウトが 発生したあと nodeが自動で(promiseの仕様?)最初から リクエストの処理をリトライするようで ピタゴラスイッチのアルゴリズム体操見たいに なってたわw 初歩的な質問ですが サーバに飛んできたリクエストだけを中断するには exitが正解ですか? returnが正解ですか? res.end(); ですか? サーバ自体は止めたくありませんが ある関数自体を中断するだけでなく そのリクエストだけ大元から全部中断したいです
- 514 名前:デフォルトの名無しさん mailto:sage [2020/09/02(水) 22:07:44.16 ID:m9UvO5Rn.net]
- お前がコード書くのをやめる、が正解
- 515 名前:デフォルトの名無しさん mailto:sage [2020/09/07(月) 13:52:39.16 ID:KQEAaFWf.net]
- どなたか、次の JS のコードの結果が、2,5,3 ではなく、2,3,5 になっている理由を説明出来ますか?
console.log( "0" ); var sample = new Promise( function(resolve, reject) { console.log( "1" ); setTimeout(function() { console.log( "2" ); resolve(); console.log( "3" ); }, 1000); }); console.log( "4" ); sample.then( function(value) { console.log( "5" ); }); console.log( "6" ); [結果] 0 1 4 6 2 3 5
- 516 名前:デフォルトの名無しさん mailto:sage [2020/09/07(月) 14:38:17 ID:UUesL9I9.net]
- 説明できますかって何だよ挑発してんのかよ
resolve()は必ずイベントループに戻ってからthen()のコールバックが呼ばれるからに決まってるだろがボケカス マイクロタスクキューでも調べやがれポンコツ
- 517 名前:デフォルトの名無しさん [2020/09/07(月) 15:25:12.91 ID:Egt+Qwmp.net]
- 0
4 1 6 2 3 5 とか 0 4 6 1 2 3 5 にならない?
- 518 名前:デフォルトの名無しさん mailto:sage [2020/09/07(月) 15:45:30.49 ID:UUesL9I9.net]
- ならない
Promiseコンストラクタはコールバックを即時実行する MDN executor 関数は Promise 実装により resolve 関数と reject 関数が渡されて即座に実行されます (Promise コンストラクターが作成したオブジェクトを返すよりも前に executor は呼び出されます)。
- 519 名前:デフォルトの名無しさん mailto:sage [2020/09/07(月) 17:09:51 ID:3uGG3SyO.net]
- >>515
コールスタックが空にならないと、各種キューに入ってる処理は実行されない 最初にconsole.log(“6”);まで処理したらスタックが空になる その状態でsetTimeoutのタイマーが発動してキューにコールバック関数が入る スタックが空なのでキューの1番目にあるsetTimeoutのコールバック関数がスタックに積まれて呼び出される この関数がreturnするまではスタックは空にならないので それまではキューに入った処理を実行するタイミングはない console.log(“3”);まで実行してreturnしたらスタックが空になるので その後、各種キューに入ってる処理があれば実行される
- 520 名前:デフォルトの名無しさん mailto:sage [2020/09/07(月) 17:21:12.28 ID:KQEAaFWf.net]
- 試してみたんですが、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:56.06 ID:Egt+Qwmp.net]
- お前はもう死んでいる
- 522 名前:デフォルトの名無しさん mailto:sage [2020/09/07(月) 17:39:40.90 ID:UUesL9I9.net]
- 最初にresolve()した時点でそのPromiseの値は確定するから
つかスレに書き込む暇があるならドキュメントでも何でもいいから学習してPromiseがどういうもんか理解してから試せよ Promiseってのは「将来確定する"値"」を表現するもんなんだよ
|

|