Hướng dẫn callback function in javascript w3schools - hàm gọi lại trong javascript w3schools

"Tôi sẽ gọi lại sau!"

Một cuộc gọi lại là một hàm được truyền dưới dạng đối số cho một hàm khác

Kỹ thuật này cho phép một hàm gọi chức năng khác

Một chức năng gọi lại có thể chạy sau khi một hàm khác kết thúc

Trình tự chức năng

Các hàm JavaScript được thực thi trong chuỗi chúng được gọi. Không trong chuỗi chúng được xác định.

Ví dụ này sẽ kết thúc hiển thị "Goodbye":

Thí dụ

hàm myfirst () {& nbsp; MyDisplayer ("Xin chào");}
  myDisplayer("Hello");
}

hàm mysecond () {& nbsp; MyDisplayer ("Tạm biệt");}
  myDisplayer("Goodbye");
}

myfirst (); mysecond ();
mySecond();

Hãy tự mình thử »

Ví dụ này sẽ kết thúc hiển thị "Xin chào":

Thí dụ

hàm myfirst () {& nbsp; MyDisplayer ("Xin chào");}
  myDisplayer("Hello");
}

hàm mysecond () {& nbsp; MyDisplayer ("Tạm biệt");}
  myDisplayer("Goodbye");
}

mySecond();myFirst();
myFirst();

Hãy tự mình thử »


Ví dụ này sẽ kết thúc hiển thị "Xin chào":

Kiểm soát trình tự

Đôi khi bạn muốn có quyền kiểm soát tốt hơn khi thực hiện một chức năng.

Giả sử bạn muốn thực hiện một phép tính, và sau đó hiển thị kết quả.

Bạn có thể gọi hàm máy tính (myCalculator), lưu kết quả và sau đó gọi hàm khác (myDisplayer) để hiển thị kết quả:

Thí dụ
  document.getElementById("demo").innerHTML = some;
}

hàm mydisplayer (một số) {& nbsp; document.getEuityById ("demo"). innerHtml = một số;}
  let sum = num1 + num2;
  return sum;
}

hàm mycalculator (num1, num2) {& nbsp; Đặt sum = num1 + num2; & nbsp; trả về tổng; }
myDisplayer(result);

Hãy tự mình thử »

Ví dụ này sẽ kết thúc hiển thị "Xin chào":

Thí dụ

hàm myfirst () {& nbsp; MyDisplayer ("Xin chào");}
  document.getElementById("demo").innerHTML = some;
}

hàm mysecond () {& nbsp; MyDisplayer ("Tạm biệt");}
  let sum = num1 + num2;
  myDisplayer(sum);
}

myfirst (); mysecond ();

Hãy tự mình thử »

Ví dụ này sẽ kết thúc hiển thị "Xin chào":

Kiểm soát trình tự

Đôi khi bạn muốn có quyền kiểm soát tốt hơn khi thực hiện một chức năng.



Giả sử bạn muốn thực hiện một phép tính, và sau đó hiển thị kết quả.

Bạn có thể gọi hàm máy tính (myCalculator), lưu kết quả và sau đó gọi hàm khác (myDisplayer) để hiển thị kết quả:

Thí dụ

Thí dụ

hàm myfirst () {& nbsp; MyDisplayer ("Xin chào");}
  document.getElementById("demo").innerHTML = some;
}

hàm mysecond () {& nbsp; MyDisplayer ("Tạm biệt");}
  let sum = num1 + num2;
  myCallback(sum);
}

myfirst (); mysecond ();

Hãy tự mình thử »

Ví dụ này sẽ kết thúc hiển thị "Xin chào":

Kiểm soát trình tự

Đôi khi bạn muốn có quyền kiểm soát tốt hơn khi thực hiện một chức năng.

Giả sử bạn muốn thực hiện một phép tính, và sau đó hiển thị kết quả.

Bạn có thể gọi hàm máy tính (myCalculator), lưu kết quả và sau đó gọi hàm khác (myDisplayer) để hiển thị kết quả:


Thí dụ

hàm mydisplayer (một số) {& nbsp; document.getEuityById ("demo"). innerHtml = một số;}

hàm mycalculator (num1, num2) {& nbsp; Đặt sum = num1 + num2; & nbsp; trả về tổng; }

Đặt kết quả = mycalculator (5, 5); MyDisplayer (kết quả);

Hoặc, bạn có thể gọi chức năng máy tính (myCalculator) và để chức năng máy tính gọi chức năng hiển thị (myDisplayer):



Chức năng gọi lại của JQueryCallback Functions


Một chức năng gọi lại được thực thi sau khi hiệu ứng hiện tại được hoàn thành 100%.


Chức năng gọi lại của JQuery

Một chức năng gọi lại được thực thi sau khi hiệu ứng hiện tại được hoàn thành 100%.

Các câu lệnh JavaScript được thực thi từng dòng. Tuy nhiên, với các hiệu ứng, dòng mã tiếp theo có thể được chạy mặc dù hiệu ứng chưa kết thúc. Điều này có thể tạo ra lỗi.

Để ngăn chặn điều này, bạn có thể tạo chức năng gọi lại.

Một chức năng gọi lại được thực thi sau khi hiệu ứng hiện tại kết thúc.$(selector).hide(speed,callback);

Cú pháp điển hình: $ (bộ chọn) .Hide (tốc độ, gọi lại);

Ví dụ

Ví dụ dưới đây có tham số gọi lại là một hàm sẽ được thực thi sau khi hoàn thành hiệu ứng ẩn:

Ví dụ với gọi lại
  $("p").hide("slow", function(){
    alert("The paragraph is now hidden");
  });
});

$ ("nút"). Nhấp (function () {& nbsp; & nbsp; $ ("p"). Ẩn ("slow", function () ; & nbsp;});});

Hãy tự mình thử »

Ví dụ dưới đây không có tham số gọi lại và hộp cảnh báo sẽ được hiển thị trước khi hoàn tất hiệu ứng ẩn:

Ví dụ mà không cần gọi lại
  $("p").hide(1000);
  alert("The paragraph is now hidden");
});

$ ("nút"). Nhấp (function () {& nbsp; & nbsp; $ ("p"). Ẩn ("slow", function () ; & nbsp;});});



"Tôi sẽ kết thúc sau!"

Các chức năng chạy song song với các chức năng khác được gọi là không đồng bộ

Một ví dụ điển hình là javascript setTimeout ()

JavaScript không đồng bộ

Các ví dụ được sử dụng trong chương trước, đã rất đơn giản.

Mục đích của các ví dụ là để chứng minh cú pháp của các hàm gọi lại:

Thí dụ

hàm mydisplayer (cái gì đó) {& nbsp; document.getEuityById ("demo"). innerHtml = something;}
  document.getElementById("demo").innerHTML = something;
}

hàm mycalculator (num1, num2, mycallback) {& nbsp; Đặt sum = num1 + num2; & nbsp; mycallback (tổng);}
  let sum = num1 + num2;
  myCallback(sum);
}

mycalculator (5, 5, mydisplayer);

Hãy tự mình thử »

Trong ví dụ trên, myDisplayer là tên của một hàm.

Nó được truyền đến myCalculator() như một lập luận.

Trong thế giới thực, các cuộc gọi lại thường được sử dụng với các chức năng không đồng bộ.

Một ví dụ điển hình là JavaScript setTimeout().


Chờ đợi thời gian chờ

Khi sử dụng chức năng JavaScript setTimeout(), bạn có thể chỉ định chức năng gọi lại sẽ được thực thi khi hết thời gian:

Thí dụ

hàm mydisplayer (cái gì đó) {& nbsp; document.getEuityById ("demo"). innerHtml = something;}

hàm mycalculator (num1, num2, mycallback) {& nbsp; Đặt sum = num1 + num2; & nbsp; mycallback (tổng);}
  document.getElementById("demo").innerHTML = "I love You !!";
}

Hãy tự mình thử »

Trong ví dụ trên, myDisplayer là tên của một hàm.

Nó được truyền đến myCalculator() như một lập luận.

Trong thế giới thực, các cuộc gọi lại thường được sử dụng với các chức năng không đồng bộ.

Một ví dụ điển hình là JavaScript setTimeout().

Chờ đợi thời gian chờ

Khi sử dụng chức năng JavaScript setTimeout(), bạn có thể chỉ định chức năng gọi lại sẽ được thực thi khi hết thời gian:

setTimeout (myFunction, 3000);

Thí dụ

hàm mydisplayer (cái gì đó) {& nbsp; document.getEuityById ("demo"). innerHtml = something;}

hàm mycalculator (num1, num2, mycallback) {& nbsp; Đặt sum = num1 + num2; & nbsp; mycallback (tổng);}
  document.getElementById("demo").innerHTML = value;
}

Hãy tự mình thử »

Trong ví dụ trên, myDisplayer là tên của một hàm.

Trong thế giới thực, các cuộc gọi lại thường được sử dụng với các chức năng không đồng bộ.



Một ví dụ điển hình là JavaScript setTimeout().

Chờ đợi thời gian chờ

Thí dụ

hàm mydisplayer (cái gì đó) {& nbsp; document.getEuityById ("demo"). innerHtml = something;}

hàm mycalculator (num1, num2, mycallback) {& nbsp; Đặt sum = num1 + num2; & nbsp; mycallback (tổng);}
  let d = new Date();
  document.getElementById("demo").innerHTML=
  d.getHours() + ":" +
  d.getMinutes() + ":" +
  d.getSeconds();
}

Hãy tự mình thử »

Trong ví dụ trên, myDisplayer là tên của một hàm.

Nó được truyền đến myCalculator() như một lập luận.

Trong thế giới thực, các cuộc gọi lại thường được sử dụng với các chức năng không đồng bộ.


Một ví dụ điển hình là JavaScript setTimeout().

Chờ đợi thời gian chờ

Khi sử dụng chức năng JavaScript setTimeout(), bạn có thể chỉ định chức năng gọi lại sẽ được thực thi khi hết thời gian:

setTimeout (myFunction, 3000);

hàm myFunction () {& nbsp; document.getEuityById ("demo"). Internhtml = "Tôi yêu bạn !!"; }

Trong ví dụ trên, myDisplayer1 được sử dụng như một cuộc gọi lại.
  document.getElementById("demo").innerHTML = some;
}

myDisplayer1 được chuyển cho setTimeout() như một đối số.
  let req = new XMLHttpRequest();
  req.open('GET', "mycar.html");
  req.onload = function() {
    if (req.status == 200) {
      myCallback(this.responseText);
    } else {
      myCallback("Error: " + req.status);
    }
  }
  req.send();
}

3000 là số mili giây trước khi hết thời gian, vì vậy myDisplayer4 sẽ được gọi sau 3 giây.

Hãy tự mình thử »

Trong ví dụ trên, myDisplayer là tên của một hàm.

Nó được truyền đến myCalculator() như một lập luận.

Trong thế giới thực, các cuộc gọi lại thường được sử dụng với các chức năng không đồng bộ.

mycar.html

Một ví dụ điển hình là JavaScript setTimeout().

Chờ đợi thời gian chờ
Most definitions of the term specify that cars are designed to run primarily on roads, to have seating for one to eight people, to typically have four wheels.

Khi sử dụng chức năng JavaScript setTimeout(), bạn có thể chỉ định chức năng gọi lại sẽ được thực thi khi hết thời gian:



Hàm gọi lại trong JavaScript là gì?

Một cuộc gọi lại là một hàm được truyền như một đối số cho một hàm khác. Kỹ thuật này cho phép một chức năng gọi chức năng khác. Một chức năng gọi lại có thể chạy sau khi một chức năng khác kết thúc.a function passed as an argument to another function. This technique allows a function to call another function. A callback function can run after another function has finished.

Các chức năng gọi lại với một ví dụ là gì?

Ví dụ: Sử dụng hàm gọi lại hàm SayName () được truyền làm đối số cho hàm Greet ().Phương thức setTimeout () thực thi hàm lời chào () chỉ sau 2 giây.Tuy nhiên, hàm SayName () chờ đợi việc thực thi hàm GREET ().The sayName() function is passed as an argument to the greet() function. The setTimeout() method executes the greet() function only after 2 seconds. However, the sayName() function waits for the execution of the greet() function.

Hàm gọi lại được sử dụng để làm gì?

Hàm gọi lại là một hàm được truyền như một đối số cho một hàm khác, để được gọi là trở lại sau đó.Một hàm chấp nhận các hàm khác vì các đối số được gọi là hàm bậc cao hơn, chứa logic khi hàm gọi lại được thực thi.

Làm thế nào để bạn viết một chức năng gọi lại?

Một hàm gọi lại tùy chỉnh có thể được tạo bằng cách sử dụng từ khóa gọi lại làm tham số cuối cùng.Sau đó, nó có thể được gọi bằng cách gọi hàm gọi lại () ở cuối hàm.Toán tử typeOf được sử dụng tùy chọn để kiểm tra xem đối số được truyền có thực sự là một hàm không.Bảng điều khiển.using the callback keyword as the last parameter. It can then be invoked by calling the callback() function at the end of the function. The typeof operator is optionally used to check if the argument passed is actually a function. console.