リゾルバで不要な呼び出しを避ける方法があるのだろうかと思います。apollo-serverリゾルバの応答をキャッシュ/再利用する方法
私のリゾルバは次のようになります(最小化)
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();
を呼び出します。それらを2回呼び出すことを避ける方法はありますか?同じリクエストの場合は "キャッシング"と同じですか?同じ型のフィールドのための
これは、 'type'と' bkFrom'/'bkTo'がリクエストされていなくても、getTo()とgetFrom()を起動します。 – Skaronator
ええ、それはそのアプローチの欠点です。別のアイデアについては編集を参照してください。 –