我真的把自己绑在一个结在这里弄得很困惑,如何按照我希望它们发生的顺序执行任务。
我有从服务器数据构建数组并返回结果的函数。 - 这样可以正常工作并返回结果。
完成此事后(两次)我想运行另一个功能。由于某种原因,我试图将这些函数嵌入到另一个函数中,其中一个完成块一旦这两个函数完成并返回数据就会返回true,但我正在尝试这个函数,它在函数完成之前返回结果
@Autowired
private Session session;
...
// Option 1: write some cypher
Map<String, Object> params = new HashMap<>():
params.put("ids", ids) // use a stream like above to collect the ids.
Iterable<SomeObject> someObjects = session.query(SomeObject.class, "MATCH (n:SomeObject) ...", params);
//Option 2: use the load by instances method which also allows pagination:
Collection<SomeObject> someObjects = session.loadAll(categories, new Pagination(0, 25));
答案 0 :(得分:2)
将下一步移动到前面的闭包中。继续筑巢。像这样:
func getCollectionArrays(_ block: ((Bool) -> Void)? = nil) {
var resultPack: Bool!
var resultPart: Bool!
BuildArray.buildArrayFromQuery(queryForCollection: "Pack", sender: self, completeBlock: { (result) in
if result != nil {
resultPack = true
}
// next step, nested in this closure
BuildArray.buildArrayFromQuery(queryForCollection: "Part", sender: self, completeBlock: { (result) in
if result != nil {
resultPart = true
}
// next step, nested in _this_ closure
if resultPack == true && resultPart == true {
block!(true)
}
})
})
}