XMLHttpRequest 异步这样写可以吗,会泄露吗

export class Http {
    send(url,data){
        return new Promise((resolve,reject)=>{
            let xhr = new XMLHttpRequest();
            xhr.onreadystatechange = function () {
                if (xhr.readyState == 4) {
                    if( (xhr.status >= 200 && xhr.status < 400)){
                        let response = xhr.responseText;
                        resolve(response)
                    }else{
                        resolve('error')
                    }
                }
            };               
            xhr.timeout = 0; 
            xhr.open("GET", url, true);
            xhr.send();
        })
    }

    async test(){
        let result = await this.send('','');
    }
}

怕内存泄露,不知道这样写会不会有问题

可以用axios库,没必要自己写

泄露不大知道,await可能会无限等待,不是所有if分支处理了Resolve/Reject。
另外,在托管语言,所谓泄露应该是内存死锁没法回收,导致无法GC,看这段代码不大可能产生这种问题。