const defaultOpts = { message: "", res: {}, err: false, get isSuccess() { return !![0,1][~~(Math.random()*2)] }, get duration() { return ~~(Math.random()*3000+500) } } export default function http(opts) { let realOpts = {} Object.keys(defaultOpts).forEach(v => { if (opts&&opts[v] != undefined) { realOpts[v] = opts[v] } else { realOpts[v] = defaultOpts[v] } }) console.log('请等待'+realOpts.duration/1000+'s') return new Promise((resolve, reject) => { setTimeout(() => { if(realOpts.err){ reject(new Error("diy message")); } if(realOpts.isSuccess){ resolve({code: 1, message:realOpts.message, data: realOpts.res}) }else{ reject({code: 0,message:realOpts.message, data: realOpts.res}) } }, realOpts.duration) }) }