-
ID:8lkfZI さんの質問

javascriptで非同期実行のメソッドを作る場合は、以下のような記述で問題ないですか?(__はスペースの代わり)


  • function You () {
    __this.doSomething = function () {
    ____setTimeout(function () {
    ______var que = [1, 2, 3, 4, 5];
    ______var length = que.length;
    ______while (length--) {
    ________console.log(length);
    ______}
    ____}, 0);
    ____console.log("A");
    __}
    }

var you = new You();
you.doSomething(); // A, 4, 3, 2, 1, 0


  • 非同期で処理を走らせるメソッドを書く場合というのは、こんなシンプルな書き方で大丈夫なのでしょうか?それとも、別スレッド(?)を立てるとかいう表現をたまに聞きますが、そういったことをしないといけないのでしょうか?

みんなの回答 1 件

ID:dOaN5e さんの回答

JavaScriptはシングルスレッドです。別スレッドとか立てれません。
最新のブラウザのみの対応でいいならWeb Workerを使いましょう。

ID:8lkfZI

ありがとうございます。web workerは名前は聞いたこと有りますが、使ったことないので勉強してみます。調べたところIE10からなのですね。IE10からだとまだ使いづらい感じですね。。。。ちなみに、web worker使わない場合ですと、どのように非同期処理を実装するのでしょうか?上の書き方で大丈夫なんですかね???

ID:dOaN5e

使わない場合はトピ主の書き方で問題ないよ。

最終更新日:2016-02-24 (1,411 views)

関連するトピックス

ページ上部に戻る