在灰度时调用不同的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 }) //注意,不能有{}
)

 

posted on 2022-02-17 11:08  漫思  阅读(42)  评论(1编辑  收藏  举报

导航