Tôi đang tự động tải mã (hàm) từ một máy chủ và thực thi nó dưới dạng mã javascript rồi lưu trữ nó trong một mảng và thực thi. Tất cả các đoạn mã này phải được thực thi chính xác một lần. Các psuedocode sau như vậyCó bất kỳ hoạt động javascript nguyên tử nào để xử lý bản chất không đồng bộ của Ajax không?
function fetch(foo){
if (foo in fooArray){
//Do Nothing
else{
//Fetch foo via Ajax and execute foo()
}
}
Vấn đề là bao la phức tạp hơn, nhưng về cơ bản nếu tôi thực hiện lệnh dưới đây
fetch('someFunctionName');
fetch('someFunctionName');
fetch('someFunctionName');
fetch('someFunctionName');
cả bốn sẽ thực hiện if (foo in fooArray)
và cho rằng nó không phải là trong mảng, và cả bốn sẽ tiến hành lấy mã và thực thi nó. Tôi nhớ lại trong ngày học về các ẩn dụ và mutexes, có những thứ như vậy cho javascript.
ràng nó là có thể, kể từ jQuery thực hiện điều này: http://stackoverflow.com/questions/7131991/asynchronous-and- đồng bộ điều khoản – Mchl
Tôi đã viết một blog về nó [Tại sao không có công cụ đồng thời trong javascript] (http://uzairfarooq.github.io/why-no-concurrency-control-tool-in-javascript/) –
liên kết là bị hỏng, phải là: http://blog.uzairfarooq.com/why-no-concurrency-control-tool-in-javascript –