1

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

4

1 回答 1

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();
于 2017-12-11T13:18:34.250 回答