关于async

关于async

var $={
	ajax:function(options){
		var xhr=null,                      //XMLHttpRequest对象
		    url=options.url,               //url地址
		    method=options.method || 'get',//传输方式,默认为get
		    async=typeof(options.method)==="undefined" ? true:options.async;
		    console.log(async);
		if(typeof XMLHttpRequest != "undefined"){
                xhr = new XMLHttpRequest();
			}else if(typeof ActiveXObject != "undefined"){
				//将所有可能出现的ActiveXObject版本放在一个数组中
				var xhrArr=['Microsoft.XMLHTTP','MSXML2.XMLHTTP.6.0','MSXML2.XMLHTTP.5.0','MSXML2.XMLHTTP.4.0','MSXML2.XMLHTTP.3.0','MSXML2.XMLHTTP.2.0'];
				//遍历创建XMLHttpRequest对象
				var len=xhrArr.length;
				for(var i=0;i<len;i++){
                   try{
                   	//创建XMLHttpRequest对象
                   	xhr=new ActiveXObject(xhrArr[i]);
                   	break;
                   }
                   catch(ex){
                   }
				}
			}else{
				throw new Error('No XHR object availabel.')
			}

	}
}

$.ajax({
	url:"",
	method:"post",
	async:false
})

老师出现一个费解的情况,当我33行method:"post",这个请求方式不存在的时候,我打印async都是true,但是method:"post",有的话,打印的结果就是false,这之间有什么联系方式吗???

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
Aurora_Meteor 2020-03-29 12:47:57

是你判断的地方写错了呀,你写的是

async=typeof(options.method)==="undefined" ? true:options.async;

正确的应该是

async = typeof (options.async) === 'undefined' ? true : options.async;


樱桃小胖子 2020-02-01 14:59:37

同学你好,代码中method = options.method || 'get',这句代码会进行判断,当用户自己设置的时候,会使用默认的,也就是说,当method:"post"存在的时候,method = options.method || 'get'会判断用户自己设置了method,这个时候会使用用户设置的,打印async就会执行async:false,当method:"post"不存在的时候,会使用默认的设置,async的默认设置是true。

如果我的回答帮助了你,望采纳,祝学习愉快!

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星

相似问题

登录后可查看更多问答,登录/注册

2.组件化网页开发
  • 参与学习           人
  • 提交作业       1121    份
  • 解答问题       14456    个

本阶段在运用JS实现动态网页开发的基础上,带你深入理解企业开发核心思想,完成一个企业级网页的开发,体验前端工程师的成就感。

了解课程
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师