トップページ > プログラム > 2016年07月30日 > TM2kAcv9

書き込み順位&時間帯一覧

3 位/171 ID中時間01234567891011121314151617181920212223Total
書き込み数00000000042011200012202118



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
+ JavaScript の質問用スレッド vol.121 + [無断転載禁止]©2ch.net
オブジェクト指向は愚かな考え。この世は計算式 ★3©2ch.net

書き込みレス一覧

+ 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

ごまかすなよ。お前は最初から間違ってたんだよ。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。