"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, myDisplayer
1 được sử dụng như một cuộc gọi lại.
document.getElementById["demo"].innerHTML = some;
}
myDisplayer
1 đượ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 myDisplayer
4 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: