所以我有一个关于Horizon的错误和两个问题。 (http://horizon.io/docs/) 我有一个简单的表和1个记录,这是行:
id: "o34242-43251-462...",
user_id: "3lw5-6232s2...",
other_id: "531h51-51351..."
当我运行 hz serve 时,我收到此错误:
意外的索引名称(无效字段):" hz _ [[" user_id"],[[" other_id"," 0" ]]]"
好的,好的,无效的字段......但我没有找到关于"有效"的任何信息。领域。有人知道答案吗?我能做什么?
我的问题:
如果我的查询很少,例如:
let table = this.horizon('firstTable');
let table2 = this.horizon('secondTable');
table.find(someId).fetch().subscribe((item) => {
//and then I want to run other query, e.g:
table2.find(item.id).fetch().subscribe((value) => {
//and here again run other query... <-- how to avoid this?
});
});
如何从视图的查询中返回一个值,然后在其他查询中使用此值?我不想把它全部写在一个函数中......
感谢您的帮助。
答案 0 :(得分:1)
因为&#39; fetch&#39;返回一个RxJS observable,它只产生一个结果,你可以使用&#39; toPromise&#39;以方便的方式消费它。
let table = this.horizon('firstTable');
let table2 = this.horizon('secondTable');
let item1 = await table.find(someId).fetch().toPromise();
let item2 = await table2.find(item1.id).fetch().toPromise();
或者没有ES7等待,只需使用Promise.then:
table.find(someId).fetch().toPromise().then((item1) => {
table2.find(item1.id).fetch().toPromise().then((item2) => {
// take over the world from here
});
});