title: Multiple before() or beforEach() in mocha
body: <p>I need to do multiple async calls in before() hook in mocha. I need to delete a user, then signup , verify email  and finally login to get token to authenticate all other test cases. Here is my code snippet :</p>
  
  <pre><code>    const userInfo = {
          "password": "pass123",
          "email": "test@email.com",
      };
  
      var token = '' , userId = '';
  
      before((done) =&gt; {
          // Delete the  user if already exists
          User.remove({
                  email: userInfo.email
              }).then((res) =&gt; {
                //  console.log(res.result);
              })
              .end(done);
          done();
      });
  
  
      before((done) =&gt; {
          request(app)
              .post('/api/users')        
              .send(userInfo)
              .expect(200)
              .expect((res) =&gt; {        
              })
              .end(done);
      });
  
      before((done) =&gt; {
          User.findOne({
                  email: userInfo.email
              }).then((res) =&gt; {            
                  userId = res._id;
                  request(app)
                      .post('/api/users/verify-email')
                      .send({'token' : userId})
                      .expect(200)
                      .expect((res) =&gt; {                
                      })
                      .end(done);
              })
              .end(done);
          done();
      });
  </code></pre>
  
  <p>Here these calls are not executing in sequence. I need to fetch userId before verifying the email, but I am getting below error:</p>
  
  <pre><code>POST /api/users/verify-email 401 4.082 ms - 45
      1) "before all" hook
  </code></pre>