title: Resolve all fields in one resolver V.S. resolve field in each resolver
body: <p>Here is my <code>typeDefs</code>:</p>
  
  <pre class="lang-js prettyprint-override"><code>const typeDefs: string = `
    type Book {
      id: ID!
      title: String
      authorId: ID!
      author: User
    }
  
    type User {
      id: ID!
      name: String
    }
  
    type Query {
      books: [Book]!
    }
  `;
  
  export { typeDefs };
  </code></pre>
  
  <p><code>resolvers</code>:</p>
  
  <pre class="lang-js prettyprint-override"><code>import { IResolvers } from 'graphql-tools';
  import { IBook } from './db';
  
  const resolvers1: IResolvers = {
    Query: {
      books: (_, args, { db }): Promise&lt;IBook[]&gt; =&gt; {
        return db.books.map(book =&gt; {
          book.author = db.users.find(user =&gt; book.authorId === user.id);
          return book;
        });
      }
    }
  };
  
  const resolvers2: IResolvers = {
    Query: {
      books: (_, args, { db }): Promise&lt;IBook[]&gt; =&gt; {
        return db.books;
      }
    },
    Book: {
      author: (book, args, { db }) =&gt; {
        return db.users.find(user =&gt; book.authorId === user.id);
      }
    }
  };
  
  export { resolvers1, resolvers2 };
  </code></pre>
  
  <p>Within <code>resolvers1</code>, it resolves all fields of <code>Book</code>. (Add <code>author</code> field to <code>book</code>) </p>
  
  <p>Within <code>resolvers2</code>, it resolves each field of <code>Book</code> in the independent resolver.</p>
  
  <p>I find both <code>resovlers1</code> and <code>resolvers2</code> work fine. I can get the correct response like this: </p>
  
  <pre class="lang-js prettyprint-override"><code>{
    "data": {
      "books": [
        {
          "id": "02wDZbBuMi",
          "title": "Ea repellendus",
          "authorId": "hhP2TtobM",
          "author": {
            "id": "hhP2TtobM",
            "name": "Mrs. Destiney Kerluke"
          }
        },
        {
          "id": "tC3uPfKfUZ",
          "title": "Consectetur fugit",
          "authorId": "k9IHZAtld8",
          "author": {
            "id": "k9IHZAtld8",
            "name": "Mr. Rene Heidenreich"
          }
        }
      ]
    }
  }
  </code></pre>
  
  <p>What's the difference between them? Are these two ways correct? If not, why?</p>