在灰度时调用不同的promise服务
1、分情况讨论 promise的情况
let { data: { data }, } = await getPreApi('taskdetails', () => details({ params }));
export async function getPreApi(key: any, req: any) { //@ts-ignore if (typeof pha !== 'undefined') { try { //@ts-ignore let data = await pha.dataPrefetch.getData({ key: key, }); Promise.resolve(data); console.log(data); console.log('走的pha'); } catch { if (req) { return req(); } } } else { if (req) { console.log('走的网络'); return req(); } } }
2、之前的代码
export const getwxuser = async (options) => { try { let { data: { data } } = await checkGary({ params: {} }); if (!data) { return Promise.resolve(await getwxusernew(options)); } else { return Promise.resolve(await getwxuserold(options)); } } catch (err) { return Promise.reject(err); } }
这个代码写的不好,我们改造下这个代码
export const getwxuser = async (options, oldMethod, newMethod) => { try { let { data: { data } } = await checkGary({ params: {} }); if (!data) { return oldMethod() } else { return newMethod() } } catch (err) { return oldMethod() } }
如何调用
getwxuser({},
() => details({ params }),//注意,不能有{}
() => detailsNew({ params }) //注意,不能有{}
)
漫思