« javascript promise | メイン | SVGのパラメーター »

2017年06月07日

javascriptキューのお話

var p=1;
setTimeout(function(){p=2},1000);
while(p==1){
    console.log("waiting");
}
console.log("end");

上記処理はいつまでたっても終わらない。
といのはsetTimeoutで登録された関数は最後の行console.log("end");が終わってから1秒後に実施されるのでpの値は変わらずwhileループは無限ループとなる

 

ならばimg.onLoad とかどうなの?って思うがこれもキューに登録されているんで同じことになる。

var p=1;
var img = new Image();
img.onLoad = function(){
"use strict";
p=2;
};
img.src = "a.jpg";
console.log(p);

while(p===1){
console.log("a");
}
console.log("end");

これも無限ループばい

投稿者 muuming : 2017年06月07日 09:42