记录一下promise、异步等待使用案例1

tech2025-08-07  11

// 场景: 在桥连接(或类似的异步请求完成)后,才能继续执行查询数据操作。 // 桥连接请求初始可能失败,那么写个轮训,在规定时间内连续请求至成功,超时则不请求。 async function mouted() { // 场景1:当桥连接失败也要继续执行 try { await tryToGetBridgeInfo(); }catch(e) { console.log(e.message, 23232) } await query(); // 场景2:当桥连接失败不继续执行 // await tryToGetBridgeInfo(); // await query(); } mouted(); // 定时器请求获取桥连接至成功,最多请求5次,5次内请求都失败,那么不再请求。 async function tryToGetBridgeInfo() { return new Promise(async (resolve, reject) => { let count = 0; let timer = setInterval(async () => { count++; if (count >= 6) { clearInterval(timer); return reject(new Error('请求次数超限')) } console.log(`当前是第${count}次请求`) await getBridgeInfo(count); clearInterval(timer); resolve(); }, 500); }) } // 请求桥连接 async function getBridgeInfo(askCount) { return new Promise((resolve, reject) => { console.log('准备请求桥连接') // 请求成功需要第几次 let linkSuccessNeedCount = 4; if (askCount < linkSuccessNeedCount) { return reject('桥连接失败'); } console.log('桥连接成功') resolve('桥连接成功') }) } // 一般的查询 async function query() { setTimeout(() => { console.log("获取到的接口数据", [{ id: 1 }]) }, 0) }
最新回复(0)