# SDK API

主要提供 3 个 API,对已有的的 wx.fnwx.invoke('xxx') 进行封装,功能有:

  • TS 完美提示,包括调用 API 名、入参和出参
  • 支持 Promise 异步调用,你可以直接写 async/await 语法,避免回调地狱

# asyncCall

封装了 wx.fn 的调用方式,使得可以直接异步 Promise 调用,比如:

以前你这么写:

wx.checkJsApi({
  jsApiList: ['chooseImage'], // 需要检测的JS接口列表
  success: function (res) {
    // 以键值对的形式返回,可用的api值true,不可用为false
    // 如:{"checkResult":{"chooseImage":true},"errMsg":"checkJsApi:ok"}
  }
});

现在可以这么写:

import {asyncCall} from 'wecom-sidebar-jssdk';

const res = await asyncCall({
  jsApiList: ['chooseImage']
})

console.log(res.checkResult);

只要 wx.fn 里需要传 success 的,都可以使用 asyncCall 来直接调用。

下面是调用参数

参数 描述 类型
apiName wx.fn 的 fn 名 string
params wx.fn 调用时的参数(不需要传回调了) {}

返回参数为 success 回调时的参数。

失败时,会直接抛出 errMsg.msg 的内容,可通过 console.log(e.message) 查看。

# call

同步调用 wx.fn 的封装方法。因为某些接口调用是不需要异步等结果的,所以这个 API 和原来的 wx.fn 调用没什么差别,只不过会有更好的 TS 提示:

以前写法:

wx.startRecord();

现在写法:

import {call} from 'wecom-sidebar-jssdk';

call('startRecord');

下面是调用参数

参数 描述 类型
apiName wx.fn 的 fn 名 string
params wx.fn 调用时的参数(不需要传回调了) {}

# invoke

wx.invoke('xxx') 调用方法进行封装,可以直接使用 async/await 的方式来异步调用。

以前写法:

wx.invoke('getCurExternalContact', {}, function (res) {
  if (res.err_msg == "getCurExternalContact:ok") {
    userId = res.userId; //返回当前外部联系人userId
  } else {
    //错误处理
  }
});

现在写法:

import {invoke} from 'wecom-sidebar-jssdk';

const res = await invoke('getCurExternalContact', {});

console.log(res.userId);

下面是调用参数:

参数 描述 类型
apiName wx.invoke('xxx') 的 xxx 名 string
params wx.invoke('xxx') 调用时的参数 {}

返回值为 wx.invoke('xxx', callback) 里 callback 的结果。

失败时,会抛出 res.err_msg 的内容,可通过 console.log(e.message) 查看。