我動態地從服務器加載代碼(函數),並將其作爲javascript代碼執行,然後將其存儲在數組中並執行。所有這些代碼片段都必須執行一次。該僞代碼如下這樣是否有任何原子javascript操作來處理Ajax的異步性質?
function fetch(foo){
if (foo in fooArray){
//Do Nothing
else{
//Fetch foo via Ajax and execute foo()
}
}
的問題是遠遠更爲複雜,但本質上,如果我發出以下命令
fetch('someFunctionName');
fetch('someFunctionName');
fetch('someFunctionName');
fetch('someFunctionName');
所有四個將執行if (foo in fooArray)
,並認爲它是不是數組中,所有四個將繼續獲取代碼並執行它。我記得當天學習信號量和互斥量,有沒有這樣的事情的JavaScript。
Apparantly這是可能的,因爲jQuery的做到這一點:http://stackoverflow.com/questions/7131991/asynchronous-and-同步條款 – Mchl
我寫了一個關於它的博客[爲什麼沒有在javascript中的併發工具](http://uzairfarooq.github.io/why-no-concurrency-control-tool-in-javascript/) –
這個鏈接是破碎,應該是:http://blog.uzairfarooq.com/why-no-concurrency-control-tool-in-javascript –