У меня есть мысленный эксперимент. В моем коде у меня есть глобальная переменная say var changeMe;
, и я делаю несколько вызовов Ajax.
//call One -- third param is the callback function
ajaxFunction(url1, params,function(data){
changeMe = data;
});
//call Two
ajaxFunction(url2, params,function(data){
changeMe = data;
});
Значит, значение changeMe
будет зависеть от того, какой вызов Ajax заканчивается последним, что означает, что завершающий последний вызов перезапишет это значение.
Что делать, если оба вызова заканчиваются ровно на в то же время, с той же меткой времени?
Поскольку Javascript является однопоточным, мы обычно не будем получать эту проблему, но это может возникнуть в случае вызовов setTimeout
и Ajax. Я не знаю, как я могу точно реплицировать эту проблему, поэтому она по-прежнему остается мысленным экспериментом.
Итак, как в многопоточных условиях работает тупик?
Я предпочитаю, чтобы ответ вроде changeMe
был url1
или url2
, и ясное объяснение ситуации..
Заранее спасибо