Я занимаюсь разработкой простого веб-приложения, которое использует API перевода Google для перевода текста на разные языки и затем обратно на первый.
Проблема в том, что когда я вызываю google.language.translate (...), указывается функция обратного вызова, которая обновляет текстовое поле на моей странице. Здесь:
while (i < translationNumber) {
google.language.translate(testua, languages[i] , languages[i+1],
function(result) {
if (result.translation) {
text = result.translation;
f.textarea1.value = text;
}
});
alert('You must not close this until translation is done');
i++;
}
Как вы видите, для того, чтобы вручную дождаться окончания перевода, необходимо предупреждение, поэтому он корректно переводится в порядке моего массива языков, в противном случае ожидают многократные вызовы перевода и прерывается порядок. Было бы замечательно, если бы я мог использовать какой-то семафор, как в Java или C, однако я довольно новичок в Javascript и не знаю, как это можно сделать.