compatible

修饰器,实现各种兼容用法

Source:

Methods

(static) supportWXCallback(target, funcName, descriptor)

Source:

提供微信api形式的回调
主要适用场景:将微信api改写为promise形式后,兼容旧代码
被修饰函数应该返回一个promise,成功时resolve,失败时reject,或返回{succeeded: true/false, ...}格式,通过succeeded字段标识成功失败
修饰后的函数会支持arguments[0]中传入success、fail、complete属性,并根据promise结果进行回调

Example
class Demo {
  @supportWXCallback //自动支持success、fail、complete回调
  async getSystemInfo(){
    let sysInfo = {};//自定义getSystemInfo实现,比如加入一些缓存策略,添加一些额外字段等
    return {
      succeeded: true, //标示应该触发success回调还是fail回调
      ...sysInfo, //返回成功/失败对应数据
    }
  }
  
  test(){
    this.getSystemInfo().then(sysInfo=>{
      //正常以Promise形式使用
    });
    
    this.getSystemInfo({
      success(sysInfo){
        //同时,自动兼容回调形式使用
      }
    })
  }
}
Parameters:
Name Type Description
target
funcName
descriptor