- + JavaScript の質問用スレッド vol.121 + [無断転載禁止]©2ch.net
277 :デフォルトの名無しさん[sage]:2016/07/26(火) 09:23:03.62 ID:xARKgQoP - >>271
そう、美しくない、だからあくまで横着な例だと断ったでしょ。 まあその後のレスで言われてるように、そもそもを言い出したらキリがない。 あと例えばPromise.allを使うと、allの前というか引数内でいろいろチェーンを繋げてからするとじゃなくて 素直なパターンだとallで読み込み全完了してからそのimg要素配列を解決値として受け取る形になるよね。 で、そこから表示となるから、このパターンだと、読み込みながら順次プログレスに表示したい場合には使いにくい。 まあゲームリソースとしてのトランプ画像ならそれは問題ないかもしれない。 まあそれやこれやとか狭い見方広い見方で考えることはキリがないけど、 とりあえずそういう一度きりパターンにはこういうのもあるよと示した。 これがベストだとかどのくらい良いものなのかとかは言ってないし、言わない。ただ横着に思われるかもとは思った。それだけ。 >>274 YESでもありNOでもある。 ただ自分の中ではPromiseとObservableは仲間というか進化関係というか話の繋がりがあるから断りなく言ってしまった。 幾つかの値を断続的に出したいとき:Generator関数がIteratorを返す。 1つの値を非同期に出したい時:Async関数がPromiseを返す。 なら幾つかの値を断続的に非同期に出したい時は?:Async-Generator関数を使う案がある。 ではAsync-Generatorは何を返す?:Promiseを返すIteratorか? つまり、1つの値を得るのに列挙しながら、解決を待つという2つの作業が必要なのか? いや、列挙しながら、解決を待つ、これは監視するという1つの作業でこなせる。 そういう新たなインターフェイスを備えたObservableを返そうということになりそう。 つまり逆に言えば今でもPromiseを使っても、Generatorと組み合わせればそういうことはこなせる。
| - + JavaScript の質問用スレッド vol.121 + [無断転載禁止]©2ch.net
281 :デフォルトの名無しさん[sage]:2016/07/26(火) 23:12:57.91 ID:xARKgQoP - 使う意味はあるでしょ。こんな感じで
new Promise(function(res,rej){ for (52枚分) { var img = new Image() img.onload = function () { 処理 } img.onerror = rej img.src = どこか } }).catch(function() { alert("読み込みエラー") }) もしくはカウンタを用意して52枚成功したら解決させてthenで続きの処理をしてもいい。 別に大したことないし、Promiseってのは大したことないことにも使えるものだよ。
|
|