Hướng dẫn javascript delay 5 seconds - javascript trì hoãn 5 giây
Chức năng này dưới đây không làm việc như tôi muốn nó; Trở thành một người mới của JS, tôi có thể tìm ra lý do tại sao. Show Tôi cần nó chờ 5 giây trước khi kiểm tra xem 5 có phải là 6 không.Hiện tại, nó không chờ đợi, nó chỉ kiểm tra ngay lập tức.
hỏi ngày 9 tháng 1 năm 2013 lúc 1:11Jan 9, 2013 at 1:11
1 Trình duyệtĐây là một giải pháp sử dụng cú pháp Async/Await mới. Hãy chắc chắn kiểm tra hỗ trợ trình duyệt vì đây là một tính năng ngôn ngữ được giới thiệu với Ecmascript 6. Chức năng tiện ích:
Usage:
Ưu điểm của phương pháp này là nó làm cho mã của bạn trông và hoạt động như mã đồng bộ. Node.jsNode.js 16 cung cấp phiên bản tích hợp của 7 dựa trên lời hứa nên chúng tôi không phải tạo chức năng tiện ích của riêng mình:
Đã trả lời ngày 24 tháng 11 năm 2017 lúc 21:52Nov 24, 2017 at 21:52
Etienne Martinetienne MartinEtienne Martin 9.1193 huy hiệu vàng32 Huy hiệu bạc47 Huy hiệu đồng3 gold badges32 silver badges47 bronze badges 6 Bạn phải đặt mã của mình vào chức năng gọi lại mà bạn cung cấp cho 7:
Bất kỳ mã nào khác sẽ thực thi ngay lập tức. Đã trả lời ngày 9 tháng 1 năm 2013 lúc 1:11Jan 9, 2013 at 1:11
Joseph Silberjoseph SilberJoseph Silber 210K59 Huy hiệu vàng356 Huy hiệu bạc289 Huy hiệu Đồng59 gold badges356 silver badges289 bronze badges 4 Bạn thực sự không nên làm điều này, việc sử dụng chính xác thời gian chờ là công cụ phù hợp cho vấn đề của OP và bất kỳ dịp nào khác mà bạn chỉ muốn chạy một cái gì đó sau một thời gian. Joseph Silber đã chứng minh điều đó tốt trong câu trả lời của mình. Tuy nhiên, nếu trong một số trường hợp không sản xuất, bạn thực sự muốn treo chủ đề chính trong một khoảng thời gian, điều này sẽ làm điều đó., the correct use of timeout is the right tool for the OP's problem and any other occasion where you just want to run something after a period of time. Joseph Silber has demonstrated that well in his answer. However, if in some non-production case you really want to hang the main thread for a period of time, this will do it.
Với thực thi trong biểu mẫu:
Tôi đã đến đây vì tôi đang xây dựng một trường hợp thử nghiệm đơn giản để giải trình tự kết hợp các hoạt động không đồng bộ xung quanh các hoạt động chặn chạy dài (nghĩa là thao tác DOM đắt tiền) và đây là hoạt động chặn mô phỏng của tôi. Nó phù hợp với công việc đó tốt, vì vậy tôi nghĩ rằng tôi đăng nó cho bất kỳ ai khác đến đây với một trường hợp sử dụng tương tự. Mặc dù vậy, nó tạo ra một đối tượng ngày () trong một vòng lặp, điều này có thể áp đảo GC nếu nó chạy đủ lâu. Nhưng tôi không thể nhấn mạnh đủ, điều này chỉ phù hợp để thử nghiệm, để xây dựng bất kỳ chức năng thực tế nào bạn nên tham khảo câu trả lời của Joseph Silber.this is only suitable for testing, for building any actual functionality you should refer to Joseph Silber's answer.
Đã trả lời ngày 29 tháng 10 năm 2015 lúc 12:22Oct 29, 2015 at 12:22
MicmicMic 3.6121 Huy hiệu vàng12 Huy hiệu bạc16 Huy hiệu đồng1 gold badge12 silver badges16 bronze badges 11 Nếu bạn đang ở trong chức năng Async, bạn chỉ cần thực hiện nó trong một dòng:
FYI, nếu Target là NodeJS, bạn có thể sử dụng điều này nếu bạn muốn (đó là chức năng SetTimeout được xác định trước):, if target is NodeJS you can use this if you want (it's a predefined promisified setTimeout function):
Đã trả lời ngày 23 tháng 7 năm 2018 lúc 16:02Jul 23, 2018 at 16:02
ShlshlShl 2.3601 Huy hiệu vàng15 Huy hiệu bạc16 Huy hiệu đồng1 gold badge15 silver badges16 bronze badges 4 Sử dụng chức năng trì hoãn như thế này:
Cách sử dụng: 0Tín dụng: Làm thế nào để trì hoãn trình xử lý .keyup () cho đến khi người dùng ngừng nhập? Đã trả lời ngày 27 tháng 1 năm 2015 lúc 15:06Jan 27, 2015 at 15:06
AvataravatarAvatar Huy hiệu vàng 13.7k88 gold badges114 silver badges188 bronze badges 0 Bạn không nên cố gắng tạm dừng 5 giây trong JavaScript. Nó không hoạt động theo cách đó. Bạn có thể lên lịch một chức năng của mã để chạy 5 giây kể từ bây giờ, nhưng bạn phải đặt mã mà bạn muốn chạy sau này vào một hàm và phần còn lại của mã sau khi chức năng đó sẽ tiếp tục chạy ngay lập tức. Ví dụ: 1Nhưng, nếu bạn có mã như thế này: 2Tuyên bố 9 sẽ chạy ngay lập tức. Nó sẽ không đợi cho đến sau khi hết thời gian chờ trong chức năng 0. Bạn không thể chỉ tạm dừng thực thi JavaScript trong một khoảng thời gian được xác định trước.Thay vào đó, bất kỳ mã nào bạn muốn chạy chậm trễ cũng phải ở trong hàm gọi lại 1 (hoặc được gọi từ hàm đó).Nếu bạn đã cố gắng "tạm dừng" bằng cách lặp, thì về cơ bản, bạn sẽ "treo" trình thông dịch JavaScript trong một khoảng thời gian. Bởi vì JavaScript chạy mã của bạn chỉ trong một luồng, khi bạn lặp lại, không có gì khác có thể chạy (không người xử lý sự kiện nào khác có thể được gọi). Vì vậy, vòng lặp chờ một số biến để thay đổi sẽ không bao giờ hoạt động vì không có mã nào khác có thể chạy để thay đổi biến đó. Đã trả lời ngày 9 tháng 1 năm 2013 lúc 1:13Jan 9, 2013 at 1:13
jfriend00jfriend00jfriend00 660K91 Huy hiệu vàng938 Huy hiệu bạc940 Huy hiệu đồng91 gold badges938 silver badges940 bronze badges 3 Giải pháp này đến từ tài liệu của React Bản địa để kiểm soát làm mới: 3Để áp dụng điều này cho câu hỏi của OP, bạn có thể sử dụng chức năng này phối hợp với 2: 4Đã trả lời ngày 19 tháng 2 năm 2020 lúc 21:57Feb 19, 2020 at 21:57
bearacuda13bearacuda13bearacuda13 1.7293 huy hiệu vàng23 Huy hiệu bạc32 Huy hiệu đồng3 gold badges23 silver badges32 bronze badges 5Điều này sẽ ẩn div '.message' sau 5 giây.
Đã trả lời ngày 30 tháng 9 năm 2020 lúc 18:47Sep 30, 2020 at 18:47
HackerNewbiehackernewbiehackernewbie 1.41417 Huy hiệu bạc13 Huy hiệu đồng17 silver badges13 bronze badges 1 Thử cái này: 6
Manoj Sharma 1.4672 Huy hiệu vàng13 Huy hiệu bạc20 Huy hiệu Đồng2 gold badges13 silver badges20 bronze badges Đã trả lời ngày 3 tháng 11 năm 2015 lúc 11:51Nov 3, 2015 at 11:51
Steve Jiangsteve JiangSteve Jiang 6337 Huy hiệu bạc16 Huy hiệu Đồng7 silver badges16 bronze badges 1 Cách tốt nhất để tạo một chức năng như thế này để chờ đợi trong milli giây, chức năng này sẽ chờ mili giây được cung cấp trong đối số: 7Đã trả lời ngày 2 tháng 5 năm 2015 lúc 12:20May 2, 2015 at 12:20
2 Dựa trên câu trả lời của Joseph Silber, tôi sẽ làm như vậy, một chút chung chung. Bạn sẽ có chức năng của mình (hãy tạo một chức năng dựa trên câu hỏi): 8Và bạn có thể có chức năng chờ: 9Cuối cùng bạn sẽ có: 0Đó là một giải pháp, tôi thà không sử dụng các đối số trong hàm chờ (chỉ có 3 thay vì 4) nhưng đó là ví dụ.Đã trả lời ngày 13 tháng 7 năm 2017 lúc 14:25Jul 13, 2017 at 14:25
SylharesylhareSylhare 4.9087 Huy hiệu vàng58 Huy hiệu bạc74 Huy hiệu đồng7 gold badges58 silver badges74 bronze badges 0 Bạn có thể thêm độ trễ bằng cách thực hiện các thay đổi nhỏ cho chức năng của bạn (Async và Await). 1Đã trả lời ngày 9 tháng 1 năm 2020 lúc 10:30Jan 9, 2020 at 10:30
1 Nếu bạn có chức năng Asyn, bạn có thể làm: 2Đã trả lời ngày 16 tháng 7 lúc 8:19Jul 16 at 8:19
SUMSUMCITYSUMSUMCITYsumsumcity 1091 Huy hiệu bạc3 Huy hiệu đồng1 silver badge3 bronze badges 2 Tạo chức năng JS mới 3Gọi chức năng khi bạn muốn trì hoãn thực thi. Sử dụng mili giây trong INT cho giá trị độ trễ. 4Đã trả lời ngày 22 tháng 5 năm 2018 lúc 8:15May 22, 2018 at 8:15
3 |