记react 使用的问题
问题描述: 1. react组件中,组件中正执行某个请求,请求未结束时卸载该组件,请求使用promise,此时promise状态为pedding, 组件componentWillUnMount已经执行; 2. 重载该组件后,请求的promise会继续执行,
当时测试环境前提: TestComponent 父组件并未卸载
代码如下
class TestComponent extends Component { componentDidMount(){ } componentWillUnMount(){ console.log('unMount') } async request(){ await startReqesut() this.props.callback && this.props.callback() } }
加载 TestComponent后,比如点击执行 this.request(); startReqesut接口请求还未结束时, 卸载TestComponent组件,componentWillUnMount()已经执行
下次重载TestComponent时, 会执行 startRequest后面的代码 ,即 this.props.callback
卸载TestComponent后, js事件循环并未将startRequest 生成的微任务执行