generator出现之前,想要实现对异步队列中任务的流程控制,大概有这么一下几种方式:

  • 回调函数

  • 事件监听

  • 发布/订阅

  • promise对象

第一种方式想必大家是最常见的,其代码组织方式如下:

大学生就业培训,高中生培训,在职人员转行培训,企业团训

function fn(url, callback){ var httpRequest;    //创建XHR
 httpRequest = window.XMLHttpRequest ? new XMLHttpRequest() :  
    window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : undefined;
  
 httpRequest.onreadystatechange = function(){  if(httpRequest.readystate === 4 && httpRequest.status === 200){  //状态判断   callback.call(httpRequest.responseXML); 
  }
 };
 httpRequest.open("GET", url);
 httpRequest.send();
}
 
fn("text.xml", function(){    //调用函数
 console.log(this);   //此语句后输出});
 
console.log("this will run before the above callback.");  //此语句先输出

网友评论