需求:
有时遇到一条数据,需要请求两个接口 ,两个接口都请求成功,才能拿到数据
注:别问为什么不合并成一个接口,因为后端没时间,遇到这种奇葩需求,就需要我们前端工程师,特事特办了,
jquery解决方案:使用$.when()
参考官方文档:https://www.jquery123.com/jQuery.when/
代码:
$.when(
COMMON.ajaxItem(url_data, params),COMMON.ajaxItem(url_video, params)
).done(function (dataBasic, dataVideo) {
console.log(dataBasic[0].data);//第一个接口返回值
console.log(dataVideo[0].data); //第二个接口返回值
})
ajaxItem是我封装的ajax方法,代码如下:
ajaxItem: function (url, params) {
return $.ajax({
type: "POST",
url: url,
contentType: "application/json;charset=UTF-8",
data: JSON.stringify(params),
error: function (XMLHttpRequest, textStatus, errorThrown) {
console.error("-------");
console.error("状态码:" + XMLHttpRequest.status);
//状态:
// 0-未初始化
// 1-正在载入
// 2-已经载入
// 3-数据进行交互
// 4-完成
console.error("状态:" + XMLHttpRequest.readyState);
console.error("错误信息:" + XMLHttpRequest.statusText);
console.error("返回响应信息:" + XMLHttpRequest.responseText);
console.error("请求状态:" + textStatus);
console.error(errorThrown);
console.error("请求失败");
},
})
},