내 resolver에서 불필요한 호출을 피할 수있는 방법이 있는지 궁금합니다.캐시/아폴로 - 서버 해결 프로그램 응답을 재사용하는 방법
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();
을 부를 것이다. 두 번 전화하는 것을 피할 수있는 방법이 있습니까? 동일한 요청 인 경우 "캐싱"과 유사합니까?
'type'과'bkFrom' /'bkTo'가 요청되지 않은 경우에도 getTo()와 getFrom()을 트리거 할 것입니다. 맞습니까? – Skaronator
그래, 그건 그 접근 방식의 단점이야. 다른 아이디어를 보려면 편집을 참조하십시오. –