title: Why event.target.value is not updated after running await?
body: <p>I'm writing a onChange event handler that runs with some async codes.
  Since the function is asynchronous, event object has persisted at the top.</p>
  <p>Before running <code>await</code>, 'event.targe.value' is expected, but after running await, event.target.value is not updated.</p>
  <p>I know that I can cache value like <code>const value = event.targe.value</code> before running await, but I want to know why the event.target.value changes before and after await.</p>
  <pre class="lang-js prettyprint-override"><code>function MyApp() {
    const [title, setTitle] = useState('')
    
    const handleChange = async (e) =&gt; {
      // if I type 'a' 
      console.log(e.target.value) // 'a'
      e.persist()
      console.log(e.target.value) // 'a'
  
      // some async code here
      await Promise.resolve(null)
  
      console.log(e.target.value) // value is not 'a' but '', not updated
      setTitle(e.target.value)
    }
  
    return &lt;input value={title} onChnage={handleChange} /&gt;
  }
  </code></pre>