title: Function return null, await result not applied
body: <p>I am using the below function within post method. The async-await is used but in transferAmount totalBalance is not updated when I call the function inside the post route. The return from the function is not proper. I need guidance so that it returns the object with updated values.</p>
  <pre><code>    async function transferAmount(fromAccountId, toAccountId, amount) {
          const session = await mongoose.startSession();
          const options= {session, new:true}
          let sourceAccount, destinationAccount;
          const BASICSAVNGS_MAX_BALANCE = 1500;
          
          const result = {
              newSrcBalance: 0,
              totalDestBalance:0,
              transferedAt:moment.now()
          }   
          
          
          try {
              session.startTransaction();
              const source= await Account.findByIdAndUpdate(
                  {_id:sourceAccount._id},
                  {$inc:{balance:-amount}},
                  options
              );
          
              if(source.balance &lt;0) {
                  // Source account should have the required amount for the transaction to succeed
                  const errorMessage='Insufficient Balance with Sender:';          
                  throw new ErrorHandler(404,errorMessage);            
              }
              
              const destination = await Account.findByIdAndUpdate(
                  {_id:destinationAccount._id},
                  {$inc:{balance:amount}},
                  options
              ); 
  
              // The balance in ‘BasicSavings’ account type should never exceed Rs. 50,000
              if((destination.accountType.name === 'BasicSavings') &amp;&amp; (destination.balance &gt; BASICSAVNGS_MAX_BALANCE)) {         
                  const errorMessage=`Recepient's maximum account limit reached`;
                  throw new ErrorHandler(404,errorMessage); 
              }
              await session.commitTransaction();
              result.transferedAt= moment.now() //*UPDATE THE TRANSFER TIMESTAMP
              result.newSrcBalance = source.balance; //*UPDATE THE SOURCE BALANCE
              session.endSession();
  
              // finding total balance in destination account
              await User.findById(destination.user.id, async function(err,user) {
                  if(err) {
                      const errorMessage=`Recepient not found!`;
                      console.log(err);
                      throw new ErrorHandler(404,errorMessage);  
                  } else {                
                      if(user.accounts) {
                          await Account.find({
                              '_id' :{$in:user.accounts}
                          }, function(err,userAccounts) {                       
                              totalDestBalance = userAccounts.reduce( (accumulator,obj) =&gt; accumulator+obj.balance,0); 
                              result.totalDestBalance = totalDestBalance; //*UPDATE THE TOTAL BALANCE  
                              console.log(result); 
                              return result;                                                                                                              
                          });                    
                      }                
                  }
              }); 
                      
          }
          catch (error) {
              // Abort transaction and undo any changes
              await session.abortTransaction();
              session.endSession();
              throw new ErrorHandler(404,error);
          } finally {
              if(session) {
                  session.endSession();
              }
          }    
      }
  
      module.exports = transferAmount;
  </code></pre>
  <p>Result of above function is</p>
  <pre><code>{
    newSrcBalance: 940,
    totalDestBalance: 1060,
    transferedAt: 1594982541900
  }
  </code></pre>
  <p>But inside the post request below it is {}</p>
  <pre><code>const result = await transferAmount(fromAccountId, toAccountId, amount);
  </code></pre>