请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于局部mock

在request请求函数中,通过判断传来的options.mock是否等于undefined,等于的话直接用options.mock赋值给config.mock,这样虽然明面上业务走得通,但总感觉不太妥当,config中的mock属于全局mock,而options中的mock只是局部该次请求中的mock,这样的赋值,相当于每次请求都会改变config中的mock值,作为配置文件中的值,频繁改变不合适吧。我觉得可以在请求中判断options.mock,如果是undefined则取config.mock,不是则取options.mock
如在非pro的环境下,service.defaults.baseURL = (typeof options.mock != ‘undefined’ ? options.mock : config.mock) ? config.mockApi : config.baseApi
纯属个人见解

正在回答

1回答

你理解的很到位,这里确实有一点不太妥,那就是频繁修改全局的mock。

正确的逻辑应该是:先判断局部mock,在判断全局mock。

// 判断全局mock是否开启

let isMock = config.mock;

// 判断局部接口mock是否开启,局部mock可打开或者关闭,默认undefined

if (typeof mock != 'undefined') isMock = mock;

// 生产环境强制走baseApi;

if (['prod', 'pre'].includes(config.env)) {

service.defaults.baseURL = config.baseApi;

} else {

service.defaults.baseURL = isMock ? config.mockApi : config.baseApi;

}


0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信