💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
有下面几种基本的使用方式。 <br/> **1. 基本使用过程** ```js /** * 1. 创建Promise对象 */ const fun01 = (count) => { /** * resolve:成功时的回调函数 * reject:失败时的回调函数 */ return new Promise((resolve, reject) => { if (count === 1) { resolve('成功时的回调') } else { reject('失败时的回调') } }) } /** * 2. 可以调用函数 then(value, reason) 获取Promise对象的返回值 * value:成功时的返回值 * reason:失败时的返回值 */ fun01(1).then( (value) => { console.info('sucess', value) //sucess 成功时的回调 }, (reason) => { console.info('fail', reason) } ) fun01(2).then( (value) => { console.info('success', value) }, (reason) => { console.info('fail', reason) //fail 失败时的回调 } ) /** * 捕获异常。 * 可以将函数 then(value, reason) 写成 then(value).catch(reason) 来捕获异常 */ fun01(3).then((value) => { console.info('success', value) }) .catch((reason) => { console.error('fail', reason) //fail 失败时的回调 }) ``` <br/> **2. 封装基于定时器的异步编程** ```java const fun01 = (count) => { return new Promise((resolve, reject) => { setTimeout(() => { if (count === 1) { resolve('成功时的回调') } else { reject('失败时的回调') } }, 2000) }) } fun01(1) .then((value) => { console.info('success', value) //等待2000ms后输出:success 成功时的回调 }) .catch((reason) => { console.error('fail', reason) }) ``` <br/> **3. 封装异步请求** ```java const fun02 = (url) => { return new Promise((resolve, reject) => { const xhr = new XMLHttpRequest() xhr.onreadystatechange = () => { if (xhr.readyState != 4) return const { status, response } = xhr if (status === 200) { resolve(JSON.parse(response)) } else { reject(new Error(`message:请求失败, status:${status}`)) } } xhr.open('GET', url) xhr.send() }) } fun02('http://localhost:3000/src/assets/demo.json') .then((value) => { console.info('sucess', value) //sucess {username: '张三', passowrd: '123456'} }) .catch((reason) => { console.info(reason) }) ```