💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
1. 创建一个Promise实例 ``` var url = 'https://douban.uieee.com/v2/movie/top250'; /* new 一个Promise对象 */ var promise = new Promise((resolve, reject)=>{ /* 发送一个异步请求,执行$.ajax方法 */ $.ajax({ url, dataType: 'jsonp', success(res){ /* 请求成功则执行resolve方法 */ resolve(res); }, error(err){ /* 请求失败则执行reject方法 */ reject(err); } }) }) /* promise对象 */ promise.then(res=>{ /* .then()内是resolve方法 , 等待promise中的异步行为结束后才执行*/ console.log(res); // .then内可写成: /* function(res){ console.log(res) } */ },err=>{ /* 否则则执行`,err`内的方法 */ console.log(err.status); }) ``` 2. 封装一个Promise实例,实现promise链式then ``` 使用promise封装ajax请求 function promise(url){ return new Promise((resolve, reject)=>{ $.ajax({ url, dataType: 'jsonp', success(res){ resolve(res) }, error(err){ reject(err); } }); }); } ``` 使用promise ``` var url = 'https://douban.uieee.com/v2/movie/top250'; promise(url).then(res=>{ /* promise请求top250 */ var id = res.subjects[0].id; let url = 'https://douban.uieee.com/v2/movie/' + id; // console.log(id); /* 获得top250的第一项的url */ return promise(url); /* 使用promise处理url, 将这个方法return出去 */ }).then(res=>{ /* 在这里会打印第一个电影 */ console.log(res); }) ``` 这种方法可以避免回调地狱