[1日1 js]JavaScriptのコールバック関数


https://www.impressivewebs.com/callback-functions-javascript/

JavaScriptのコールバック関数



=>電話は阿可柏と言います;
コールバック関数とは?
パラメータとして他のコードに渡される実行コードまたは実行コードの参照.
例)addEventListener(クリック、function)
サイトではjQueryを例に挙げています.

コールバック関数を作成します。

console.clear();

function mySandwich(param1, param2, callback) {
  console.log('Started eating my sandwich. It has: ' + param1 + ', ' + param2);
  callback();
}

mySandwich('ham', 'cheese', function() {
  console.log('Finished eating my sandwich.');
});
=>わあ、これでめちゃくちゃに...
=>まずfunction mySandwichは定義にすぎません
=>実際の実行は次のmySandwichセクションで、定義が開始されます.
だから私はサンドイッチを食べ始めました.Ithas:コンソールに「+param 1+」、「+param 2」と表示されます.
=>param 1およびparam 2は、定義されたhamおよびcheeseを反映する.
=>次にcallback()を実行します.
=>実際のパラメータはかっこなしのコールバックですが、ロールバックが斜行の場合はカッコで完了します.
=>大かっこで必要に応じてパラメータを呼び出すことができます.
=>最後のラーニングでは、()を使用してすぐに実行し、使用しない場合は起動時に実行します.
(ここは大丈夫だけど、復習としては…ははは)

JavaScriptでコールバック関数を選択


=>コールバックを選択できます.
=>未作成の場合
function  mySandwich (param1, param2, callback)  {
   console .log( '내 샌드위치를 ​​먹기 시작했습니다. ' + param1 + ', ' + param2);
  콜백();
}

// 필수 인수가 누락되었습니다. 브라우저의 개발자 도구에서 다음 오류 메시지를 확인하십시오. Uncaught TypeError: callback is not a function at mySandwich 
mySandwich( 'ham' , 'cheese' );
function  mySandwich (param1, param2, callback)  {
   console .log( '내 샌드위치를 ​​먹기 시작했습니다. ' + param1 + ', ' + param2);
  if (콜백) {
    콜백();
  }
}

// 세 번째 인수는 없지만 콜백을 먼저 확인하기 때문에 오류는 없습니다. 
mySandwich( '햄' , '치즈' );
=>強制的に書かせてください

コールバックが関数であることを確認


=>なぜ関数なのかを確定しなければならないと思っていました.
=>次の手順を経ると、スムーズに完了します.
=>typeof()チェック関数の使用
function  mySandwich (param1, param2, callback)  {
   console .log( '내 샌드위치를 ​​먹기 시작했습니다. ' + param1 + ', ' + param2);
  if (콜백 && typeof (콜백) === '함수' ) {
    콜백();
  }
}

// 세 번째 인수는 함수가 아닙니다. 
mySandwich( 'ham' , 'cheese' , 'vegetables' );

JavaScriptでコールバック関数を使用する場合のタイミングの注意点


非同期実行が含まれている場合は、非同期操作が開始された後にコールバックが実行されますが、完了する前に実行される場合があります.
=>まずsetTime関数と同じ理由で最後ではない可能性があります.
コールバック関数は、関数内のすべてのコードが同期されている場合にのみ、デフォルトの警告ロールとして機能する必要があります.
=>同じ話ですが、最終的に整理