2016-08-05 15 views
0

我想在函數startGame()結束後運行函數step2()。在前一個函數結束之後是否有辦法觸發某個函數?

function startGame() { 
    var t = document.createTextNode("X"); 
    document.getElementById("3x3").appendChild(t); 
    document.getElementById("3x3").style.fontSize = "120px"; 
} 
function step2() { 
    while (document.getElementById("3x1").innerHTML == "") { 
    } 
} 
+0

然後在'startGame'結尾調用'step2()' –

+0

你怎麼做到這一點? –

+0

'step2()'似乎是一個無限循環。除非'while'內有改變HTML的內容,否則條件的值將永遠不會改變。 – Barmar

回答

1

試試這個:

function startGame() { 
    var t = document.createTextNode("X"); 
    document.getElementById("3x3").appendChild(t); 
    document.getElementById("3x3").style.fontSize = "120px"; 
    step2(); 
} 
function step2() { 
    // Step 2 logic here 
} 
0

是!你可能會考慮承諾 - 無論是ES6提供的版本或使用像藍鳥一樣的庫。 Promises允許你將一個方法鏈接到一個函數上,以便它可以同步完成函數。

但是,您可以在startGame末尾致電step2()

+1

承諾通常僅用於異步功能。這裏沒有任何異步。 – Barmar

1

只需調用函數一個接一個:

startGame(); 
step2(); 

語句只是在順序執行的,所以當第一個函數調用返回,下一個函數調用完成。

相關問題