【发布时间】:2018-04-19 03:18:11
【问题描述】:
我想知道是否有办法在我的解析器中避免不必要的调用。
我的解析器如下所示:(最小化)
Transaction: {
bkFrom(transaction) {
return transaction.getFrom(); //<-- CACHE THIS?
},
bkTo(transaction) {
return transaction.getTo(); //<-- CACHE THIS?
},
type(transaction) {
return new Promise(async function(resolve, reject) {
const [From, To] = await Promise.all([
transaction.getFrom(), //<-- CACHE THIS? If bkFrom() is already triggered
transaction.getTo(), //<-- CACHE THIS? If is bkTo() already triggered
]);
switch (true) {
case From.isKonto && To.isKonto:
resolve(TransactionType.INTERN);
case !From.isKonto && To.isKonto:
resolve(TransactionType.INCOMING);
case From.isKonto && !To.isKonto:
resolve(TransactionType.OUTGOING);
default:
resolve(null);
}
});
},
},
如果我这样查询:
getTansactions(limit: 10) {
type
bkFrom {
id
name
isKonto
}
bkTo {
id
name
isKonto
}
}
它将调用transaction.getFrom(); 和transaction.getTo(); 两次。有没有办法避免两次调用它们?如果它来自同一个请求,就像“缓存”一样?
【问题讨论】:
标签: apollo apollo-server