项目中遇到需要很多个需要轮询处理的接口,然后简单的封装了下,做个记录,以后用到类似的直接copy
// polling-utils.js/** * @descripting 轮询功能 * @param {String} type 请求类型 * @param {String} url 地址 * @param {Object} data 请求数据 * @param {Number} delay 轮询间隔时间 */ export default function polling(type, url, data, delay = 1000) { return new Promise((resolve, reject) =>{ ajax[type](url, data).then(res => { if (res.data === 'polling') { setTimeout(() => { resolve(polling(type, url, data)); }, delay) } else { resolve(res); } }) }) }
用法
import polling from 'utils/polling-utils';polling('post', url, data).then(res => { console.log(res) })