- + JavaScript の質問用スレッド vol.121 + [無断転載禁止]©2ch.net
343 :デフォルトの名無しさん[sage]:2016/07/30(土) 09:44:03.43 ID:TM2kAcv9 - >>338
> だから、「52個の画像を読み込んでimageを作るプロミスを返す関数」を返してallすべきだよねって言ってんじゃん。 それだと>>281は何のために書いたの?って話になる。 「52個の画像を読み込んでimageを作るプロミスを返す関数」を 書けないから>>281のような変なコードを書いてしまうわけ
|
- + JavaScript の質問用スレッド vol.121 + [無断転載禁止]©2ch.net
345 :デフォルトの名無しさん[sage]:2016/07/30(土) 09:45:23.62 ID:TM2kAcv9 - >>341
> でも何度もrejectを呼ばれることを気にする奴が、 > 何度もonerrorを呼ばれることを気にしないのはホント不思議だな。 rejectは最悪52回呼ばれる。 onerrorはimageごとに1回なんだからなんの問題もない。
|
- + JavaScript の質問用スレッド vol.121 + [無断転載禁止]©2ch.net
346 :デフォルトの名無しさん[sage]:2016/07/30(土) 09:49:00.02 ID:TM2kAcv9 - > だから、「52個の画像を読み込んでimageを作るプロミスを返す関数」を返してallすべきだよねって言ってんじゃん。
本来は「1個の画像を読んでimageを作るプロミスを返す関数」を作らないといけないのに、 ここで52個の画像を読み込むとかいって>>281のようなコードを書くから やっぱりこいつはPromiseの使い方がわかってないとしか言えんわけだよw
|
- + JavaScript の質問用スレッド vol.121 + [無断転載禁止]©2ch.net
348 :デフォルトの名無しさん[sage]:2016/07/30(土) 09:56:25.42 ID:TM2kAcv9 - >>281がクソコードっていうか、
Promiseを使っている意味が全くない、 間違ったPromiseのであるということを示すために 本当の使い方を俺が書いてやろうか?
|
- + JavaScript の質問用スレッド vol.121 + [無断転載禁止]©2ch.net
349 :デフォルトの名無しさん[sage]:2016/07/30(土) 10:06:40.14 ID:TM2kAcv9 - function loadImage(src) {
return new Promise(function(resolve, reject) { var img = new Image(); img.onload = function () { resolve(img) }; img.onerror = reject; img.src = src; } } var promises = []; for (52枚分) { var p = loadImage(どこか).then(function() { 処理 }); promises.push(p); } Promise.all(promises).then(function(images) { すべての画像が正常に読み終わったとき }).catch(function() { alert("読み込みエラー"); }) な?これがPromiseを使う場合の正しいやり方だ。 >>281はごく普通のPromiseのコードからみると、元々の>>251のコードを 意味なくPromiseで包んだだけだろって言うのがわかるだろw 包んだ上にresolveがないから終わらないPromiseになって 間違った使い方だって言うのはすでに指摘したとおり。
|
- + JavaScript の質問用スレッド vol.121 + [無断転載禁止]©2ch.net
350 :デフォルトの名無しさん[sage]:2016/07/30(土) 10:13:19.32 ID:TM2kAcv9 - >>342
> JavaScriptで、async-await使えるんですね。 > 此方の方が楽で良い。 async-awaitってういのはPromiseを使った コードのシンタックスシュガーになている。 前提としてPromiseを返す関数があって、 それをthenを使って書くかawaitを使って書くかという違い。
|
- + JavaScript の質問用スレッド vol.121 + [無断転載禁止]©2ch.net
353 :デフォルトの名無しさん[sage]:2016/07/30(土) 12:37:20.53 ID:TM2kAcv9 - そのObject.keysと同じ機能を提供しているのがlodashのkeys
https://lodash.com/docs#keys > Note: Non-object values are coerced to objects. See the ES spec for more details. ソースコード見ると、ESのspecを満たすのは 意外と大変そうだ。 polyfillもあるぞw https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Object/keys
|
- + JavaScript の質問用スレッド vol.121 + [無断転載禁止]©2ch.net
355 :デフォルトの名無しさん[sage]:2016/07/30(土) 13:28:05.35 ID:TM2kAcv9 - https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty
|
- + JavaScript の質問用スレッド vol.121 + [無断転載禁止]©2ch.net
358 :デフォルトの名無しさん[sage]:2016/07/30(土) 14:29:48.74 ID:TM2kAcv9 - >>357
> お前多少は腕を上げたか? 最初からだ。詳しいからこそ jQueryとlodashの関数型的な素晴らしさも知ってる。 大抵のやつは、便利なライブラリ程度にしか思ってないだろ。 > ついでだから>>294の何が問題か教えておいてやるよ。 >>294の話なんかしてない。 してほしいのか? 読むとすると今からだが > さらについでに言うと、回答は>>334でいいんだが、それをお前が書いちゃ駄目なんだよ。 なぜだ?それはこれを含めていつでも素晴らしい回答をしている。
|
- + JavaScript の質問用スレッド vol.121 + [無断転載禁止]©2ch.net
359 :デフォルトの名無しさん[sage]:2016/07/30(土) 14:39:51.89 ID:TM2kAcv9 - >>357
さて読んでは見たが、 > ついでだから>>294の何が問題か教えておいてやるよ。 念のために言っておくが、>>294(ID:XB8oACQ8)は俺じゃないからな。 逆に>>293で俺にレスしてるぐらいだからな。 つーかなんで、お前が>>294の話を今更持ってきてるのかそこがわからんのだが cards配列とかいうのもなんの脈絡もなくいきなり登場したし。cards配列の仕様はなんだ? 俺は>>281がPromiseの使い方がわかってない。書いたコードになんの意味も無いって話をしてるんだが お前(ID:xXaFsH0)も(ID:XB8oACQ8)も何の話をしているのか。 俺が>>292に対してレスすりゃいいのか? そんなもん読み込まれる順番がバラバラでもcards[i] = img とかすりゃいいだけだろ。 最初にcards[10] = img が読み込まれるかもしれんが、配列としては10番目だ。
|
- + JavaScript の質問用スレッド vol.121 + [無断転載禁止]©2ch.net
364 :デフォルトの名無しさん[sage]:2016/07/30(土) 18:55:20.02 ID:TM2kAcv9 - >>361
> だからてっきりそうだと思っていた。逆に>>334がお前だって事が驚きだよ。 何のためにIDが出てるスレでやってると思ってるんだ。 ちゃんと読んでから書き込め。(俺はIDなんか無視してるけどなw) お望みなら>>334を改良してやろうか? 一回だけ呼ばれる関数であれば、lodashのonceが利用できる。 var onerror = _.once(function() { alert('読み込みエラー') }); for (52枚分) { var img = new Image() img.onload = function () { 処理 } img.onerror = onerror; img.src = どこか } jQueryで書くこともできるが今回はコード量は殆ど変わらない。 for (52枚分) { $('<img>').on({ load: function() { 処理 }), error: onerror, }).attr('src', どこか); }
|
- オブジェクト指向は愚かな考え。この世は計算式 ★3©2ch.net
479 :デフォルトの名無しさん[sage]:2016/07/30(土) 19:01:15.21 ID:TM2kAcv9 - > 継承しかり例外しかり。
継承も例外も極力使わないようにしましょうなんて 誰も言ってないが? 間違った使い方が明らかになって、 間違った使い方をしないで 正しい使い方をしましょう。 っていう結論ならばいつもそうなっている。 継承しかり例外しかり。
|
- + JavaScript の質問用スレッド vol.121 + [無断転載禁止]©2ch.net
365 :デフォルトの名無しさん[sage]:2016/07/30(土) 19:16:07.52 ID:TM2kAcv9 - >>361
> いやそれは無い。というかこのケースでPromiseなんて、 > CardGameEnterpriseEditionForPromiseLearnersでしかない。 CardGameEnterpriseEditionForPromiseLearners でググれカス
|
- + JavaScript の質問用スレッド vol.121 + [無断転載禁止]©2ch.net
367 :デフォルトの名無しさん[sage]:2016/07/30(土) 20:05:13.15 ID:TM2kAcv9 - しってるが?ぷ
|
- + JavaScript の質問用スレッド vol.121 + [無断転載禁止]©2ch.net
368 :デフォルトの名無しさん[sage]:2016/07/30(土) 20:06:37.96 ID:TM2kAcv9 - そもそも>>281のコードはPromiseの例ではなく
単なる意味がないクソコードなんだが。 それが分かってない時点でオワッテル
|
- オブジェクト指向は愚かな考え。この世は計算式 ★3©2ch.net
484 :デフォルトの名無しさん[sage]:2016/07/30(土) 22:13:41.04 ID:TM2kAcv9 - >>481
> できるだけ使わないようにって風潮はある。 無いよそんなのwww アルアル言っていても、 嘘がホントになったりしないアルよ〜w
|
- オブジェクト指向は愚かな考え。この世は計算式 ★3©2ch.net
487 :デフォルトの名無しさん[sage]:2016/07/30(土) 22:38:52.82 ID:TM2kAcv9 - なんで継承をやめたらコピペが多くなるのかそれがわからんw
正しく継承使うといういうのは、 継承以外の方法を使うべきときに、違う方法を使うという意味であって、 ならばその違う方法で、コピペを回避すれば良いんだよ。
|
- + JavaScript の質問用スレッド vol.121 + [無断転載禁止]©2ch.net
371 :デフォルトの名無しさん[sage]:2016/07/30(土) 23:13:48.29 ID:TM2kAcv9 - >>369
カッコの位置を正確に書くわ? > だから、「52個の画像を読み込んでimageを作るプロミスを返す関数」を返してallすべきだよねって言ってんじゃん。 元々これだよな? なぜ括弧を増やした? 位置を正確にっていうなら外側のカッコはいらんだろ。 > だから52個の「画像を読み込んでimageを作るプロミスを返す関数」を返してallすべきだよねって言ってんじゃん。 それで、52個の「画像を読み込んでimageを作るプロミスを返す関数」を返すのか? 関数を返すのか? Promiseを返すのではなくて? それだと意味が違ってくるよなw ごまかすなよ。お前は最初から間違ってたんだよ。
|