对象化异步:在什么时候进行 RPC 调用?

Objectify async: at what point RPC call is made?

我经常想进行两个或多个独立查询以从 Datastore 中获取实体。但我不确定它们是否真的平行。例如:

loadResult1 = ofy().load().key(Key.create(Foo.class, 1));
loadResult2 = ofy().load().key(Key.create(Bar.class, 1));

loadResult1.now();
loadResult2.now();

这样安排代码有什么好处吗?

搜索查询也是如此

iterable1 = ofy().load().type(Foo.class).iterable();
iterable2 = ofy().load().type(Bar.class).iterable();

iterable1.hasNext();
iterable2.hasNext();

iterable2 会与 iterable1 并行加载吗?

附带问题:.iterable() 在这方面与 .list() 有什么不同吗?

我尝试调试代码,但直到调用 .now() 或首次调用 .next()/.hasNext() 时才看起来调用已完成。真的是这样吗?

是 - 在您具体化结果之前,查询将异步并行进行。