gjs中的异步代码在回调调用

时间:2017-12-11 13:18:34

标签: javascript asynchronous glib gjs

当我尝试运行异步代码(如读取文件或发送http请求)时,程序会在调用回调之前立即退出。

1 个答案:

答案 0 :(得分:3)

与浏览器中的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();