用promise 封装 ajax(来自牛客)
请使用Promise封装Ajax操作
原始的Ajax操作如下:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
var onSuccess = function(result){}; //成功的回调var onFail = function(error){}; //失败的回调var req = new XMLHttpRequest();req.open("POST", "www.baidu.com", true);req.onload = function(){ if(req.readyState === 4 && req.status === 200){ onSuccess(req.response); } else { onFail(req.statusText); }}req.onerror = function(){ onFail(Error("网络异常"));} |
解:------------------------------------------------------------------------------------------------------------------------------------------
const ajax = url => { return new Promise((resolve, reject) => { let req = new XMLHttpRequest(); req.open("POST", url, true); req.onload = () => { if(req.readyState === 4 && req.status === 200){ resolve(req.response); } else { reject(req.statusText); } } req.onerror = () => { reject(Error("网络异常")); } })}
|

浙公网安备 33010602011771号