Henry-Diasa / awesome_interview_question

总结前端面试题,更贴近于实战,而非背诵的八股文。
11 stars 0 forks source link

Promise封装ajax #482

Open Henry-Diasa opened 1 year ago

Henry-Diasa commented 1 year ago
function getJSON(url) {
    return new Promise((resolve, reject) => {
         let xhr = new XMLHttpRequest()
         xhr.open('GET', url, true)
         xhr.onreadystatechange = function() {
             if(this.readyState!== 4) return
             if(this.status === 200) {
                 resolve(this.response)
             } else {
                reject(new Error(this.statusText))
             }
         }
         xhr.onerror = function() {
           reject(new Error(this.statusText))
         }
         xhr.responseType = 'json'
         xhr.setRequestHeader('Accept', 'application/json')
         xhr.send(null)
    })
}