TIL 34. ひどうきかんすう
6598 ワード
console.log("Start");
fetch("https://jsonplaceholder.typicode.com/users")
.then((response) => response.text())
.then((result) => {
console.log(result);
});
console.log("End");
//start -> End > result 순으로 console에 출력된다.
fetch関数は非同期で実行される関数です.最初のconsole.log
が実行され、fetch関数がrequestを発行すると、.then
メソッドはコールバック関数を登録します.その後、応答がコールバック関数に到達して実行される前に、すぐに次の行のコードを実行します.上記の例で整理したコード実行手順を以下に示します.一度に起動したタスクが完了する前に、次のコードに直接実行し、コールバックを実行し、非同期実行と呼ばれるタスクを完了します.非同期実行の効率は、前のコードのタスクが完了すると、次のコードが実行する同期実行に比べて、同じタスクをより迅速に処理できることである.
従来の非同期関数
1.setTimeout()
settimeout関数は、関数の実行を所要時間に遅延させるための関数です.
console.log("a");
setTimeout(() => {
console.log("b");
}, 2000);
console.log("c");
// a -> c -> b
settimeout()=>{console.log("b");このコールバックの実行を2秒遅らせるため、このコードを実行するとまずa,c,2秒後にbが出力される.fetch関数がコールバックを実行する条件が「リスナー到着時」の場合、settimeoutがコールバックを実行する条件は「設定したミリ秒数を超える時間」です.いずれにしても,コールバックの実行を後で遅らせる点は似ている.
2.setInterval()
setInterval関数は、特定のコールバックを一定時間間隔で実行する関数として登録されます.
console.log("a");
setInterval(() => {
console.log("b");
}, 2000);
console.log("c");
// a -> c -> b -> b -> b .....
setInterval関数は、登録されたコールバック実行ごとにミリ秒レベルで1回実行されます.3.addEventListener()
btn.addEventListener("click", function (e) {
console.log("Hello Codeit!");
});
addEventListenerメソッドは、クリックなどのイベントが発生したときに実行されるコールバックを登録する非同期実行にも関連しています.パラメータに渡されるコールバックは、すぐに実行されるのではなく、後で特定の条件(イベント発生をクリック)を満たすときに実行されるためです.Reference
この問題について(TIL 34. ひどうきかんすう), 我々は、より多くの情報をここで見つけました https://velog.io/@pca0046/TIL-34.-대표적인-비동기-함수テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol