我的任务是在浏览器中加载和解析Tau-Prolog代码,然后再执行其他的东西。我尝试了这种方法(webProlog.pl包含Tau-Prolog代码)。
var session = pl.create(1000);
async function init_prolog() {
// load tau
await $.get("/web/webProlog.pl", function(data) {
parsed = session.consult(data);
session.query("init.");
session.answer(printAnswer); // needed for triggering query
});
console.log('Prolog init done');
}
在"启动"查询有日志信息"Tau-Prolog初始化完成". 如果我不使用 awaitasnyc,就会出现""的信息。Prolog Init done"来 之前 Tau-Prolog消息,用上面的代码顺序是正确的(先是Tau Prolog消息,然后Prolog init done)。
问题是:我不是JS专家。这样做是否可以在所有常见的浏览器上使用,这种方法是否有我看不到的副作用或缺点?有没有更好的解决方案?
整体代码会延续PixiJS的东西设置。
干杯,谢谢你的提示
汉斯
你必须以回调的方式执行你的代码。answer
方法。
var session = pl.create(1000);
function init_prolog() {
// load tau
$.get("/web/webProlog.pl", function(data) {
parsed = session.consult(data);
session.query("init.");
session.answer(function(answer) {
printAnswer(answer);
console.log('Prolog init done');
});
});
}