Chức năng kích hoạt có vẻ đồng bộ. Nghĩa là, tất cả các hàm ràng buộc xuất hiện để được thực hiện theo thứ tự, đồng bộ (hàm được gọi có thể làm điều gì đó không đồng bộ, nhưng đó không phải là câu hỏi).Chức năng kích hoạt jQuery được đảm bảo là đồng bộ
Điều này có đúng cho các sự kiện tùy chỉnh và không tùy chỉnh (nhấp, di chuột, v.v ...) không? Có bất kỳ sự kiện nào đảm bảo duy nhất luồng của javascript không đúng không?
Nếu đúng, hành vi có thể được thay đổi để thực thi chúng không đồng bộ mà không chèn thời gian chờ vào từng hàm bị ràng buộc không?
Đây là một mẫu mà chứng minh Câu hỏi đặt ra:
var ele = $('#blah');
// Example of the bound function doing something synchronously
ele.bind('customEvent.sync', function() {
// Do something synchronously
window.foo = 'foo';
});
// Example of the bound function doing something asynchronously
ele.bind('customEvent.async', function() {
window.setTimeout(function() {
// Do something asynchronously
window.bar = 'bar';
}, 0);
});
// Trigger both events
ele.trigger('customEvent');
// If trigger is guaranteed to be synchronous this should alert 'foo:undefined' or possibly 'foo:bar' depending on whether the asych function was called first
// If trigger is NOT synchronous 'undefined:undefined', 'foo:undefined', 'undefined:bar', or 'foo:bar' could be alerted
alert(window.foo + ':' + window.bar);
CẬP NHẬT Xem: Is JavaScript guaranteed to be single-threaded? sự kiện tuỳ chỉnh được đảm bảo để được đồng bộ vì bản chất ren duy nhất của javascript. Một số loại sự kiện được tạo sẵn có thể không đồng bộ do trình duyệt không nhất quán.
dễ theo dõi hơn nếu bạn đưa ra ví dụ về mối quan tâm của bạn là gì – charlietfl
Quan tâm của tôi là liệu tôi có thể dựa vào các hàm được gọi là trình kích hoạt của tôi được thực thi trước khi cuộc gọi sau kích hoạt – Kyle
mâu thuẫn: "hàm được gọi có thể làm điều gì đó không đồng bộ .. nhưng đó không phải là câu hỏi" và "hành vi có thể thay đổi với thực thi async mà không chèn thời gian chờ vào mỗi hàm bị ràng buộc" (tôi mặc dù đó không phải là * câu hỏi?) –