Promise的一些题目
代码举例:
// 封装 ajax 请求:传入回调函数 success 和 fail
function ajax(url, success, fail) {
var xmlhttp = new XMLHttpRequest();
xmlhttp.open(‘GET’, url);
xmlhttp.send();
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState === 4 && xmlhttp.status === 200) {
success(xmlhttp.responseText);
} else {
fail(new Error(‘接口请求失败’));
}
};
}
new Promise((resolve, reject) => {
ajax(‘a.json’, (res) => {
console.log(‘a接口返回的内容:’ + res);
resolve();
});
})
.then((res) => {
console.log(‘a成功’);
new Promise((resolve, reject) => {
ajax(‘b.json’, (res) => {
console.log(‘b接口返回的内容:’ + res);
resolve();
});
});
})
.then((res) => {
// 因为上面在b接口的时候,并没有
return,也就是没有返回值。那么,这里的链式操作then,其实是针对一个空的
promise 对象进行then操作
console.log(‘b成功’);
});
打印结果:
a接口返回的内容
a成功
b成功
b接口返回的内容
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!