Как кэшировать / повторно использовать ответ распознавателя apollo-сервера

Skaronator спросил: 13 октября 2017 в 07:25 в: apollo

Мне интересно, есть ли способ избежать ненужных вызовов в моем преобразователе.

Мои средства распознавания выглядят так: (свернуто)

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(); дважды. Есть ли способ, чтобы избежать звонить этим дважды? Как"кэширование", если это из того же запроса?

0 ответов