私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレ+ JavaScript の質問用スレッド vol.141 +

みんなの評価 :
レスフィルター : (試験中)
ひさびさにjavascriptいじってますがpromiseの概念がさっぱりわかりません
これっていつごろから当たり前に使われはじめてますか?
これっていつごろから当たり前に使われはじめてますか?
>>154
ES6なので2014~2015年頃から
ES6なので2014~2015年頃から
>>154
プロミスは非同期(イベントが起きたタイミング)で、事前に設定しておいた正常/エラー処理関数を呼び出してくれるクラス
これが無い時代は、例えばHTTP通信でサーバが結果を返してくれるまで処理が止まる(同期)
プロミスは非同期(イベントが起きたタイミング)で、事前に設定しておいた正常/エラー処理関数を呼び出してくれるクラス
これが無い時代は、例えばHTTP通信でサーバが結果を返してくれるまで処理が止まる(同期)
普通は結果に対して何をするかでロジックを書くが、
プロミスは結果が出てるかもしれないし、まだ出ていないかもしれないという抽象体で
それに対する処理もまたプロミスとなるということが味噌でしょ
プロミスは結果が出てるかもしれないし、まだ出ていないかもしれないという抽象体で
それに対する処理もまたプロミスとなるということが味噌でしょ
>>158
Promiseがない時代はsetTimeoutだったりXMLHttpRequestだったり
コールバック形式で非同期をサポートしてるAPIがあってそれを使ってた
http://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Synchronous_and_Asynchronous_Requests
Promiseがない時代はsetTimeoutだったりXMLHttpRequestだったり
コールバック形式で非同期をサポートしてるAPIがあってそれを使ってた
http://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Synchronous_and_Asynchronous_Requests
Promiseは「処理が終わったら結果をこの箱の中に入れておきますから」という箱
その箱に対して「結果が出たら箱の中身を取り出して次にこの処理をしてね」という
処理の予約を付け足すことができる
付け足された処理も「終わったらこの箱に結果を入れておきますから」というまた別の箱を返す
終わってるかもしれないし終わってないかもしれないというコンテキストで値を包む箱がPromise
そのコンテキストを楽に処理できるようにするための機能がいくつか付いてくる箱
その箱に対して「結果が出たら箱の中身を取り出して次にこの処理をしてね」という
処理の予約を付け足すことができる
付け足された処理も「終わったらこの箱に結果を入れておきますから」というまた別の箱を返す
終わってるかもしれないし終わってないかもしれないというコンテキストで値を包む箱がPromise
そのコンテキストを楽に処理できるようにするための機能がいくつか付いてくる箱
>>154
初期の頃からある資料はこれだったかな?
http://wiki.commonjs.org/wiki/Promises
概念的には結構前から有るはずだが、JavaScriptに登場したのは2009年頃
このページを見る限りフレームワークのDojoがDeferredとして取り入れた
その後CommonJSでPromise/AやらBやら、いろんな仕様で検討が行われた
とはいえCommonJS自体がそんなに使われていたわけじゃないので
この時代に気づいている人は少ないと思う
多くの人がPromiseを認識したのは2011/1にリリースされたjQuery 1.5のDeferredだろう
当時のDeferredは今のPromiseとは仕様が異なるが概念的には同じもの
Deferredとはなんぞや?と人々が四苦八苦したのはこの頃
そしてES6でPromiseとしてJavaScriptの仕様になったのが2015年だね
もちろんその少し前からES5で使えるPromise実装はでていた
つまりは10年ぐらい前から使われ始めてた
初期の頃からある資料はこれだったかな?
http://wiki.commonjs.org/wiki/Promises
概念的には結構前から有るはずだが、JavaScriptに登場したのは2009年頃
このページを見る限りフレームワークのDojoがDeferredとして取り入れた
その後CommonJSでPromise/AやらBやら、いろんな仕様で検討が行われた
とはいえCommonJS自体がそんなに使われていたわけじゃないので
この時代に気づいている人は少ないと思う
多くの人がPromiseを認識したのは2011/1にリリースされたjQuery 1.5のDeferredだろう
当時のDeferredは今のPromiseとは仕様が異なるが概念的には同じもの
Deferredとはなんぞや?と人々が四苦八苦したのはこの頃
そしてES6でPromiseとしてJavaScriptの仕様になったのが2015年だね
もちろんその少し前からES5で使えるPromise実装はでていた
つまりは10年ぐらい前から使われ始めてた
V8だと3.23には実装が移されたがそれはDOM PromiseV8推しの独自Promiseであって
仕様にほぼほぼ準拠したのはようやく4.9になってから
要するに30~50くらいは実はDOM Promiseだった
仕様にほぼほぼ準拠したのはようやく4.9になってから
要するに30~50くらいは実はDOM Promiseだった
>>168
で?
で?
ようやく書けた(;´Д`) bbx規制食らってました
皆様レスありがとうございます
大変参考になりました
jQueryのDefferdという別アプローチを示していただけたのが幸いして
いい資料にありつけて結構理解は進んだと思います
皆様レスありがとうございます
大変参考になりました
jQueryのDefferdという別アプローチを示していただけたのが幸いして
いい資料にありつけて結構理解は進んだと思います
ブラウザの戻るボタンで戻ったとき、どこのページのURLから戻ったのかURLを取得する方法は?
document.referrerでは取得できませんでした
document.referrerでは取得できませんでした
iframe 内は、自分のサイトじゃなく、別人のサイトだから、アクセスできないのでは?
>>175はスクレイピング用ね
自分がWebサイト提供側ならやめとけ
自分がWebサイト提供側ならやめとけ
VSCode の拡張機能、open in browser では、ローカルファイル・アクセスだから、CORS 制限あり
file:///C:/Users/Owner/Documents/test.htm
一方、Live Server では、サーバーを立てているから、CORS にならない
http://127.0.0.1:5500/test.htm
同様に、コマンドプロンプト・PowerShell から、
1-liner で、Ruby で作られた遅いウェブサーバー、WEBrick を起動すると、
ruby -run -e httpd . -p 8080
これも、サーバー経由だから、CORS にならない
http://localhost:8080/test.htm
Ruby on Rails では、Node.js のwebpack-dev-server を使っている
file:///C:/Users/Owner/Documents/test.htm
一方、Live Server では、サーバーを立てているから、CORS にならない
http://127.0.0.1:5500/test.htm
同様に、コマンドプロンプト・PowerShell から、
1-liner で、Ruby で作られた遅いウェブサーバー、WEBrick を起動すると、
ruby -run -e httpd . -p 8080
これも、サーバー経由だから、CORS にならない
http://localhost:8080/test.htm
Ruby on Rails では、Node.js のwebpack-dev-server を使っている
このrubyさんはあちこちでrubyならrubyならって言ってるが
誰もrubyの質問なんてしてないんですよ?
糖質なんですか?いい加減にしてください!!!!
誰もrubyの質問なんてしてないんですよ?
糖質なんですか?いい加減にしてください!!!!
とあるショートコーディングで、
C=[t=[b=[{max:M,min:N,random:R}=Math]]];
というのがあったのですが、
{max:M,min:N,random:R}=Math
は分割代入でM,N,Rがそれぞれmax,min,random 関数になってるのは
理解できたのですが、その外側のC=[t=[b=[...の部分はそれぞれどういう意味を持っているのでしょうか?
また、この記法に何か特別な名前はあるのでしょうか
C=[t=[b=[{max:M,min:N,random:R}=Math]]];
というのがあったのですが、
{max:M,min:N,random:R}=Math
は分割代入でM,N,Rがそれぞれmax,min,random 関数になってるのは
理解できたのですが、その外側のC=[t=[b=[...の部分はそれぞれどういう意味を持っているのでしょうか?
また、この記法に何か特別な名前はあるのでしょうか
展開するとこうかな。最初の3行より後は意味があるとは思えないけど…
M = Math.max;
N = Math.min;
R = Math.random;
b = [Math];
t = [b];
C = [t];
M = Math.max;
N = Math.min;
R = Math.random;
b = [Math];
t = [b];
C = [t];
select で選択した項目のvalueを引数としてメソッドを呼ぶ…という作りにしたいのですが、
2度目にメソッドを呼び出すとエラーがでてしまいます。
単純に上書きされて呼び出せると思っていたのですが、何が工夫が必要なのでしょうか?
2度目にメソッドを呼び出すとエラーがでてしまいます。
単純に上書きされて呼び出せると思っていたのですが、何が工夫が必要なのでしょうか?
>>189
どうも
メソッドの作りが複雑でエラーは直接関係無さそうなもので、 Uncaught Error と出ています。
作りは簡略化していますが下記のような感じです。
select のプルダウンで選択した項目の value を引数としてスムーススクロールの easing関数を
都度変更する…といった感じです。
初回は問題ないのに、2回目の呼び出しでエラーが出ています…
<select id="easingSelect">
<option value="linear">linear</option>
<option value="easeOutExpo">easeOutExpo</option>
...
</select>
var obj = {
easing: 'easeOutExpo',
...
}
var easingSelect = document.getElementById('easingSelect');
easingSelect.addEventListener('change', function() {
var value = easingSelect.value;
obj.easing = value;
scroll(obj);
});
どうも
メソッドの作りが複雑でエラーは直接関係無さそうなもので、 Uncaught Error と出ています。
作りは簡略化していますが下記のような感じです。
select のプルダウンで選択した項目の value を引数としてスムーススクロールの easing関数を
都度変更する…といった感じです。
初回は問題ないのに、2回目の呼び出しでエラーが出ています…
<select id="easingSelect">
<option value="linear">linear</option>
<option value="easeOutExpo">easeOutExpo</option>
...
</select>
var obj = {
easing: 'easeOutExpo',
...
}
var easingSelect = document.getElementById('easingSelect');
easingSelect.addEventListener('change', function() {
var value = easingSelect.value;
obj.easing = value;
scroll(obj);
});
何回か選択して、F12 開発者ツールのコンソールで確認すると、ちゃんと代入されているから、
scroll という関数内の処理が、間違っているのでは?
obj.easing = easingSelect.value;
console.log( obj );
scroll( obj );
出力
{easing: "easeOutExpo"}
{easing: "linear"}
scroll という関数内の処理が、間違っているのでは?
obj.easing = easingSelect.value;
console.log( obj );
scroll( obj );
出力
{easing: "easeOutExpo"}
{easing: "linear"}
まずvar easingSelect = document.getElementById('easingSelect');
とする時点でバカ
Id属性を持つ要素はそのId名でwindowに登録される
この1文が丸々不要
とする時点でバカ
Id属性を持つ要素はそのId名でwindowに登録される
この1文が丸々不要



類似してるかもしれないスレッド
- + JavaScript の質問用スレッド vol.141 + (1001) - [100%] - 2019/9/22 23:15
- + JavaScript の質問用スレッド vol.142 + (984) - [97%] - 2020/8/27 19:15
- + JavaScript の質問用スレッド vol.131 + (1004) - [97%] - 2018/3/7 13:30
- + JavaScript の質問用スレッド vol.121 + (1001) - [97%] - 2015/1/1 18:30
- + JavaScript の質問用スレッド vol.121 + (1001) - [97%] - 2022/11/29 16:30
- + JavaScript の質問用スレッド vol.131 + (1000) - [97%] - 2017/1/25 8:01
- + JavaScript の質問用スレッド vol.144 + (288) - [97%] - 2020/5/17 20:00
- + JavaScript の質問用スレッド vol.111 + (1001) - [97%] - 2013/11/4 6:00
- + JavaScript の質問用スレッド vol.142 + (926) - [97%] - 2019/12/23 13:15
- + JavaScript の質問用スレッド vol.143 + (753) - [97%] - 2020/4/19 5:00
- + JavaScript の質問用スレッド vol.101 + (1001) - [97%] - 2012/7/16 14:15
- + JavaScript の質問用スレッド vol.140 + (1001) - [97%] - 2019/9/19 10:45
- + JavaScript の質問用スレッド vol.102 + (1001) - [95%] - 2012/9/11 17:30
- + JavaScript の質問用スレッド vol.123 + (966) - [95%] - 2020/10/20 2:30
- + JavaScript の質問用スレッド vol.122 + (116) - [95%] - 2018/5/2 18:30
- + JavaScript の質問用スレッド vol.122 + (1004) - [95%] - 2015/2/14 4:45
- + JavaScript の質問用スレッド vol.100 + (1001) - [95%] - 2012/6/13 22:46
トップメニューへ / →のくす牧場書庫について