コールバック関数Calback


settimeoutは非同期関数であり、一定時間(0)後に関数を実行する.
console.log(1);
setTimeout(function(){console.log(2)},0);
console.log(3);
結果は.
1
3
2

index.html

<!DOCTYPE html>
<html lang="ko">
<head>
  <meta charset="UTF-8">
  <title>REST API</title>
</head>
<body>

  <script src="app.js"></script>
</body>
</html>

app.js

const posts = [
  { title: 'Post One', body: 'This is post one' },
  { title: 'Post Two', body: 'This is post two' }
];

function createPost(post) {
  setTimeout(function () {
    posts.push(post);
  }, 2000);
}

function getPosts() {
  setTimeout(function () {
    let output = '';
    posts.forEach(function (post) {
      output += `<li>${post.title}</li>`;
    });
    document.body.innerHTML = output;
  }, 1000);
}

createPost({ title: 'Post Three', body: 'This is post three' });

getPosts();
function createPost(post, callback) {
  setTimeout(function() {
    posts.push(post);
    callback();
  }, 2000);
}


function getPosts() {
  setTimeout(function() {
    let output = '';
    posts.forEach(function(post){
      output += `<li>${post.title}</li>`;
    });
    document.body.innerHTML = output;
  }, 1000);
}

createPost({title: 'Post Three', body: 'This is post three'}, getPosts);

CallBack関数はその名の通り後に呼び出された関数である.
コールバック関数自体には、特別な宣言や構文フィーチャーはありません.
コールバック関数も普通のJavaScript関数です.
コールバック関数は、コードによって明示的に呼び出される関数ではなく、開発者が関数を記録し、イベントが発生したり、時点に達したりしたときにシステムによって呼び出される関数です.
すなわち,コールバック関数はコールバック関数という独特の構文的特徴を持つのではなく,呼び出し方式によって区別される.