JavaScriptでは一つの関数を実行してから次の関数を実行したいですか?

885 ワード

結論を先に言います
まず、JavaScriptは説明言語で、本来は順次実行します!
したがって、jsコードの一部が常にコードの前に実行されていることが発見された場合、例えばnull異常を報告すると、コールバック関数の非同期機構による可能性があります.
このような場合に解決する方法は、実行する関数をコールバック関数の内部に置くといいです.
くりを一つあげる
例えばJQuery Ajaxの$getJSON方法を使う:
$(function () {
$.getJSON("url", function (res) {
$("#myDiv").append("
"+res.name+"
"); } }); $(function(){ var a = document.getElementById("divId"); console.log(a.innerHTML); });
この場合の結果はnullです.これは第二の関数が最初のコールバック関数を含む関数の実行が終わる前から実行されていますが、まだアプリの実行を待っていないので、結果は空です.じゃ、二つ目の方法をコールバックの方法に入れます.
$(function () {
$.getJSON("url", function (res) {
$("#myDiv").append("
"+res.name+"
"); printA(); } }); function printA(){ var a = document.getElementById("divId"); console.log(a.innerHTML); }
結果はレスリング