1. ホーム
  2. javascript

[解決済み] Javascriptで非同期関数を作成するにはどうすればよいですか?

2022-04-28 09:46:53

質問

これを見てください コード :

<a href="#" id="link">Link</a>
<span>Moving</span>

$('#link').click(function () {
    console.log("Enter");
    $('#link').animate({ width: 200 }, 2000, function() {
         console.log("finished");            
    });    
    console.log("Exit");    
});

コンソールにあるように、"animate" 関数は非同期で、イベントハンドラーブロックコードのフローを fork" しています。実際、:

$('#link').click(function () {
    console.log("Enter");
    asyncFunct();
    console.log("Exit");    
});

function asyncFunct() {
    console.log("finished");
}

ブロックコードの流れに従いましょう

を作成したい場合 function asyncFunct() { } この動作は、javascript/jqueryでどのように行うのでしょうか?を使用しない方法があると思います。 setTimeout()

解決方法は?

真にカスタムな非同期関数は作れない。結局はネイティブで提供されている技術を活用するしかない、といったところでしょうか。

  • setInterval
  • setTimeout
  • requestAnimationFrame
  • XMLHttpRequest
  • WebSocket
  • Worker
  • File API、Web Database APIなど、一部のHTML5 API
  • 対応する技術 onload
  • ... その他多数

実際には、アニメーション用のjQuery setInterval .