title: Get the final result of a chain of Sequelize Promises
body: <p>I'm working in an endpoint in an Express app, and it needs to return a group of Story records that belong to a specific User. I'm using a JSON Web Token submitted with the request to identify the user. From there, I'm finding their associated Projects (through a join table, UserProjects). I'm then looping over each project to find its associated Stories. </p>
  
  <p>Ultimately, I need an array of stories to return to the user as JSON.</p>
  
  <pre><code>router.route('/')
    .get((request, response) =&gt; {
      let token = request.headers['reax-tracker-access-token'];
  
      jwt.verify(token, 'secret', (err, decoded) =&gt; {
        User.find({ where: { id: decoded.user } })
        .then( (user) =&gt; {
          return user.getProjects()
          .then( (projects) =&gt; {
            return projects.map( (project) =&gt; {
              return project.getStories()
              .then( (stories) =&gt; {
                return stories.map( (story) =&gt; {
                  return story
                })
              })
            })
          })
        })
        .then((stories) =&gt; {
          response.json(stories)
        })
      })
  
    })
  
  router.route('/:stories');
  </code></pre>
  
  <p>which returns:</p>
  
  <pre><code>[
    {
      "isFulfilled": false,
      "isRejected": false
    },
    {
      "isFulfilled": false,
      "isRejected": false
    },
    {
      "isFulfilled": false,
      "isRejected": false
    }
  ]
  </code></pre>
  
  <p>This makes sense to me, because if I use <code>setInterval</code> to wait in the final <code>then</code>, I get the results I'm expecting. </p>
  
  <pre><code>.then((stories) =&gt; {
    return setInterval(function() {
      response.json(stories)
    }, 2000)
  })
  </code></pre>
  
  <p>How can I achieve the same effect as the interval with the appropriate Promise syntax? </p>