要するに、まず alert(1) を実行するにはどうすればよいですか?
$.post('example.php', function() {
alert(1);
})
alert(2);
alert(3);
alert(4);
しかし、jquery ajax呼び出しは非同期メソッドで実行されているようです。したがって、JavaScript は最初に以下のすべてを実行します。つまり、alert(2) から alert(4) まで、次に post メソッドの alert(1) に戻ります。
確かに、コードを ajax 関数に入れるだけで済みますが、数十の関数がある場合、これは意味がありません。すべての関数にコードを追加する必要があります。
$.post('example.php', function() {
alert(1);
example();
})
function example() {
alert(2);
alert(3);
alert(4);
}
ajax 呼び出しから json データを取得し、後で使用したいと考えています。スマートな解決策はありますか?
2021-08-25
8年後、async / awaitの導入は素晴らしいです。私はもうjqueryをあまり使用していないので、コードをテストしませんでした
await Promise.resolve($.post('example.php', function() {
alert(1);
example();
}));
alert(2);
alert(3);
alert(4);