JS中 异步 等待某个方法中的所有异步方法完成后操作

JS中 异步 等待某个方法中的所有异步方法完成后操作 需导入JQ,也可使用原js 的Promise 完成,不过可能不兼容某些浏览器
//可以直接复制下面的所有代码,在谷歌浏览器中 F12 中控制台中运行

function runAsync(){
        var defer = $.Deferred();
        //做一些异步操作
				var y=3;   //定义你知道要执行异步操作次数
				var x=0;   //完成的异步执行 次数
        setTimeout(function(){
            console.log('执行完成2');
						x=x+1;
						if(y==x){
						defer.resolve('异步请求成功之后返回的数据');
						}
            
        }, 2000);
				setTimeout(function(){
						console.log('执行完成3');
						x=x+1;
						if(y==x){
						defer.resolve('异步请求成功之后返回的数据');
						}
				}, 3000);
				setTimeout(function(){
						console.log('执行完成5');
						x=x+1;
						if(y==x){
						defer.resolve('异步请求成功之后返回的数据');
						}
				}, 5000);
         return defer;
    }   
    runAsync().then(function(data){
		
        console.log("所有异步已经完成");
    });

你可能感兴趣的:(JS中 异步 等待某个方法中的所有异步方法完成后操作)