私は、テキストをさまざまな言語に翻訳してから最初のテキストに戻すためにGoogle翻訳APIを使用する単純なWebアプリケーションを開発しています。JavaScriptの同期方法
問題は、私が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でかなり初心者ですし、どうやってこれを行うことができるのか分かりません。
たいですか配列の順序に従う? –
私はそのアラートを削除して、関数呼び出しをブロッキングまたは同期化するために翻訳をsecuentiallyで実行するようにしたい。さもなければ、ループを実行して翻訳を受け取るが、 – Hiperi0n