Settimeout มักใช้เพื่อชะลอการดำเนินการของฟังก์ชันและใช้เป็น:
การคัดลอกรหัสมีดังนี้:
settimeout (function () {
-
}, หมดเวลา);
บางครั้ง settimeout (ฟังก์ชั่น…, 0) ใช้สำหรับการประมวลผลแบบอะซิงโครนัส ตัวอย่างเช่น:
การคัดลอกรหัสมีดังนี้:
ฟังก์ชั่น f () {
… // เตรียมพร้อม
settimeout (function () {
- // ทำอะไรบางอย่าง
}, 0);
กลับ …;
-
ก่อนที่โปรเซสเซอร์ฟังก์ชั่นจะตั้งค่าโดย settimeout ฟังก์ชั่น F กลับมา;
ระมัดระวังเป็นพิเศษเมื่อใช้การประมวลผลแบบอะซิงโครนัสโดยเฉพาะอย่างยิ่งเมื่อใช้คุณสมบัติการปิด
ตัวอย่างเช่น:
การคัดลอกรหัสมีดังนี้:
สำหรับ (var i = 0; i <10; i ++) {
settimeout (function () {
console.log (i);
}, 0);
-
สำหรับนักเรียนที่ใช้วิธีนี้เป็นครั้งแรกพวกเขามีแนวโน้มที่จะคิดว่าโปรแกรมจะพิมพ์ 0 … 9 แต่ผลลัพธ์คือ 10 ถูกพิมพ์ 10 อย่างแน่นอน
ปัญหาคือเมื่อลูปเสร็จสิ้นฟังก์ชั่นจะถูกดำเนินการและฉันได้กลายเป็น 10 และ 10 จะใช้ใน console.log (i)!
จุดประสงค์ของการเพิ่มคุณคือการพิมพ์ 0 … 9 ดังนั้นคุณสามารถเปลี่ยนวิธีการและใช้พารามิเตอร์ฟังก์ชั่นเพื่อบันทึก 0 … .9 (ที่จริงแล้วมันยังใช้การปิด):
การคัดลอกรหัสมีดังนี้:
สำหรับ (var i = 0; i <10; i ++) {
settimeout ((ฟังก์ชั่น (i) {
return function () {
console.log (i);
-
}) (i), 0);
-