💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
[TOC] ## Promise--清除异步操作 ~~~ //Promise.all()装载promise对象 let b = $.ajax({url:"json/a.txt",dataType:"json"}); let a = $.ajax({url:"json/b.txt",dataType:"json"}); Promise.all([a,b]).then(function(results){ let [res1,res2] = results; console.log(res1); console.log(res2); },function(err){ //fail console.log(err.status) ~~~ >用同步一样的方式,来书写异步代码 ~~~ let p = new Promise(function(resovle,reject){ //resolve--成功 //reject--失败 $.ajax({ url:"json/a.tt", dataType:"json", success(data){ resovle(data); }, error(err){ reject(err); } }) }) p.then(function(data){ //success console.log(data); },function(err){ //failCode alert(err.status) }) ~~~ ## 1.Promise.all() ~~~ //语法 Promise.all([a,b]).then(function(arr){ //success let [res1,res2]=arr; },function(){ //failcode }) ~~~ #### 1.1 使用 ~~~ let a = new Promise(function (resovle, reject) { //resolve--成功 //reject--失败 $.ajax({ url: "json/a.txt", dataType: "json", success(data) { resovle(data); }, error(err) { reject(err); } }) }) let b = new Promise(function (resovle, reject) { //resolve--成功 //reject--失败 $.ajax({ url: "json/b.txt", dataType: "json", success(data) { resovle(data); }, error(err) { reject(err); } }) }) Promise.all([a,b]).then(function(arr){ //全都成功执行以下代码,成功的参数传人arr,返回数组 let [res1,res2]=arr; console.log(res1); console.log(res2); },function(){ alert("fail") }) ~~~ #### 1.2 封装Promise ~~~ function createPromise(url) { return new Promise(function (resovle, reject) { //resolve--成功 //reject--失败 $.ajax({ url, dataType: "json", success(data) { resovle(data); }, error(err) { reject(err); } }) }) } var a = createPromise("json/a.txt"); var b = createPromise("json/b.txt"); Promise.all([a,b]).then(function (arr) { //全都成功执行以下代码,成功的参数传人arr,返回数组 let [res1, res2] = arr; console.log(res1); console.log(res2); }, function () { alert("fail") }) ~~~ #### 1.3高版本的jquery,ajax本身就是promise对象 >Tip:不用封装 ~~~ let b = $.ajax({url:"json/a.txt",dataType:"json"}); let a = $.ajax({url:"json/b.txt",dataType:"json"}); Promise.all([a,b]).then(function(results){ let [res1,res2] = results; console.log(res1); console.log(res2); },function(err){ //fail console.log(err.status) }) ~~~