Рассмотрим следующий код Javascript:
function(){
setTimeout(function() {
$("#output").append(" one ");
}, 1000);
setTimeout(function() {
$("#output").append(" two ");
}, 1000);
}
Вы также можете увидеть этот пример на jsfiddle.
Могу ли я быть уверенным, что значение #output
всегда "one two"
, в этом порядке? Обычно я бы справился с этой проблемой следующим образом:
function(){
setTimeout(function() {
$("#output").append(" one ");
$("#output").append(" two ");
}, 1000));
}
Но я не могу так поступать, потому что получаю сообщения с сервера, который сообщает мне, какую функцию выполнять (в этом примере добавить "one"
или append "two"
), который я должен выполнить с небольшой задержкой.
Я уже тестировал этот код в Internet Explorer 9, Firefox 14, Chrome 20 и Opera 12, а вывод всегда был "one two"
, но могу ли я быть уверенным, что это всегда будет?