JavaScript代码:
let result = db.all(query, [], (err, rows) -> {
return rows;
});
return result
它不起作用,函数返回Database{}
。通过日志记录,我发现该函数首先返回结果,然后才返回行,即它不等待db.all(...)
执行。
如何让代码以正确的顺序执行:首先执行db.all
,等到db.all
返回值,然后再返回结果?当结果的值明显依赖于db.all(...)
时,为什么编译器要重新排序呢?
1条答案
按热度按时间mepcadol1#
您正在处理的asynchronous code和callback functions使用匿名回调函数来处理查询的异步执行。在数据库执行查询后,结果在回调函数的“row”参数中。编译器的行为与预期一致。
为了使代码异步化,您可能需要考虑使用Promise方法。
请记住,您从中调用此函数的函数也需要是异步的。在提供的链接中提供了更多信息。