私はJavascriptが新しく、コールバックが現時点で少し気になります。 teletyperDiologue関数をコールバックにするにはどうすればよいですか?主な理由は、私は、displayOut関数が終了する前にteletyperがその仕事を終わらせたいということです。ご協力いただきありがとうございます。あなたのケースでこれをコールバック関数にするにはどうすればよいですか?
function test(a) { a(); }
function x() { alert('hello'); }
test(x);
:例として
function displayOut() {
\t
\t // images
\t document.getElementById("imgBox").style.backgroundImage = "url(" + db.rooms[roomLoc].roomImg + ")";
\t // Diologue box
\t diologueBox.innerHTML = ""; // Clear Box
\t teleTyperDiologue(db.rooms[roomLoc].description +
\t \t " The room contains: " +
\t \t \t (function() {
\t \t \t \t let x = "";
\t \t \t \t for (let i = 0; i < db.items.length; i++) {
\t \t \t \t \t if (db.items[i].location === roomLoc && db.items[i].hidden === false) {
\t \t \t \t \t \t x += db.items[i].name + ", "
\t \t \t \t \t }
\t \t \t \t }
\t \t \t \t x = x.slice(0, x.length -2);
\t \t \t \t if (x === "") {
\t \t \t \t \t x = " nothing of special interest";
\t \t \t \t }
\t \t \t \t return x;
\t \t \t })()
\t \t + ".");
};
// Teletyper for Diologue Box
function teleTyperDiologue(string) {
\t for (let i = 0; i < string.length; i++) {
\t \t setTimeout(function() {
\t \t \t diologueBox.innerHTML += string.slice(i, i + 1);
\t \t }, 5 * i);
\t }
}
teleTyperDiologue機能はタイマーイベントを持っているので、displayOut機能が終了した後に、それは常に実行され、あなたは「発電機」を試すことができ、現在サポートされていない機能のES6タイプです今日のブラウザでは、バーベル、タイピッチトランスパイライザでコンパイルすることができます。 –