通常、非同期関数は、たとえば、最後async(arg, cb)にコールバック関数プレースホルダー(cb)を提供するため、非同期ルーチンの終了時に独自のコードを実行できます。非同期関数にコールバック引数がない場合はどうなりますか?明らかにcb欠けているもの:
async(args);
myFunction();
myFunction()最初に実行されます。myFunction()終了後にのみ実行するにはどうすればよいasyncですか?独自のコールバックラッパーを作成しようとしましたが、成功しませんでした。それらは単に関数呼び出しをリダイレクトするだけでした。
編集私は上記の答えに興味がありますが、私がこの状況に遭遇した方法の例を示します。
私の例は、Googleマップのルート案内サービスです。非同期関数は、と呼ばれる描画ルーチンdirectionsDisplay.setDirections(result);であり、描画が完了した後、再センタリングしてズームインしたいと思います。setTimeoutやりたいことが起こるように3秒をまとめましたが、それは不器用な解決策です。GoogleMapsAPIを変更することは問題外のようです。何が良いでしょうか?
道順サービスはこちらです。
どちらかのドロップダウンで都市を選択するだけです。3秒後、マップが移動するはずです。