1
ファイルの読み取りやHTTPリクエストの送信などの非同期コードを実行しようとすると、コールバックが呼び出される直前にプログラムが終了します。コールバックが呼び出される前にgjsの非同期コードが呼び出される
ファイルの読み取りやHTTPリクエストの送信などの非同期コードを実行しようとすると、コールバックが呼び出される直前にプログラムが終了します。コールバックが呼び出される前にgjsの非同期コードが呼び出される
ブラウザのJavaScriptとは異なり、メインコードが終了するとすぐにgjsプログラムが終了し、コールバックを待つために、GLib.MainLoopを使用してメインコードを待たせる必要があります。たとえば、非同期HTTPリクエストを送信して待機する場合は、次のようになります。
const loop = new GLib.MainLoop(null, false);
session.queue_message(request, function(session, message) {
print('Download is done');
loop.quit();
});
loop.run();