魔法降临!让小程序调用云函数如丝般顺滑,调用接口仿佛就是调用存在于本地的函数

在上一篇文章中,我们使用 rpc-server-tcb 彻底重构了云函数的服务端,让它变得前所未有的清爽。但一个完整的调用链路,客户端的体验同样至关重要。

让我们先回忆一下小程序原生调用云函数的方式:

javascript 复制代码
// 你是不是也厌倦了这样的代码?
wx.cloud.callFunction({
  name: 'rpc',
  data: {
    // 手动指定模块和方法名
    module: 'user',
    action: 'getInfo',
    params: { userId: '123' }
  },
  success: res => {
    if (res.result.success) {
      console.log(res.result.data);
    } else {
      console.error(res.result.error);
    }
  },
  fail: err => {
    console.error('调用失败', err);
  }
})

冗长的模板代码、手动拼接的参数、层层嵌套的回调...... 这简直是一场灾难!它不仅写起来痛苦,读起来更是一种折磨。

现在,准备好迎接魔法吧!

向你介绍 rpc-client-tcb ------ rpc-server-tcb 的黄金搭档。它将彻底颠覆你调用云函数的方式,让远程调用感觉就像在调用本地函数一样简单、自然。

✨ 见证奇迹的时刻

首先,在你的小程序 utils 目录下创建一个 rpc.js 文件来初始化客户端:

utils/rpc.js

javascript 复制代码
import { createRpcClient } from 'rpc-client-tcb';

// 只需要初始化一次,指定你的云函数入口名
const rpc = createRpcClient({
  functionName: 'rpc', 
});

export default rpc;

现在,假设我们要调用上一篇文章中 user 模块的 getInfo 方法,在页面中可以这样写:

javascript 复制代码
import rpc from '../../utils/rpc';

Page({
  async onGetUser() {
    try {
      // 看!就像调用一个本地的 user.getInfo 方法!
      const userInfo = await rpc.user.getInfo('123');
      
      console.log('获取成功:', userInfo); // { id: '123', name: 'Alice', role: 'admin' }
    } catch (error) {
      // 无论是网络错误还是业务错误,都能在这里被优雅地捕获
      wx.showToast({ title: error.message, icon: 'none' });
    }
  },
});

对比一下,天壤之别!

  • 没有了 wx.cloud.callFunction 的任何踪影。
  • 没有了手动拼装的 data 对象。
  • 没有了烦人的 success/fail 回调。
  • 参数 '123' 被直接、自然地传递。
  • 完美拥抱 async/awaittry...catch,代码逻辑清晰如画。

rpc.user.getInfo 仿佛就是一个真实存在于本地的函数,rpc-client-tcb 在底层为你处理了所有复杂的通信细节。

🚀 它如何赋能你的开发?

  1. 极致的开发体验: 获得完全"本地化"的函数调用体验,智能提示(IDE)也能更好地工作。
  2. 统一的错误处理 : try...catch 可以同时捕获网络异常、云函数执行失败、服务端业务逻辑抛出的错误,让你的错误处理逻辑空前统一和健壮。
  3. 类型友好: 虽然是动态调用,但其清晰的结构对 TypeScript 非常友好,你可以轻松地为你的 RPC 接口添加类型定义。
  4. 支持复杂应用 : 你的应用是不是像"工具箱"一样,有多个领域的云函数入口(如 rpc-pdf, rpc-image)?没问题!rpc-client-tcb 支持创建多个实例,让你的客户端架构同样清晰。

立即体验丝滑

在你的小程序项目根目录下,安装它:

bash 复制代码
npm install rpc-client-tcb

然后,构建 NPM,并开始享受这魔法般的开发体验吧!

rpc-server-tcb + rpc-client-tcb,我们为你提供了一套从云端到小程序端的完整 RPC 解决方案,旨在将开发体验提升到新的高度。

现在就去试试吧,我们保证,一旦用上,你将再也回不去了。

NPM 地址 : www.npmjs.com/package/rpc...

小程序示例片段 : developers.weixin.qq.com/s/BlGqopmS8...

相关推荐
jay神1 小时前
【计算机毕业设计】基于Flask+Vue的电影数据可视化与智能推荐系统
前端·vue.js·python·信息可视化·flask·毕业设计·课程设计
FreeTinker7 小时前
HTML本地存储技术解析:localStorage与sessionStorage的原理、差异与应用场景
前端·html
qq_452396237 小时前
第十二篇:《全链路监控与可观测性:前端错误追踪与性能分析》
前端
wangruofeng8 小时前
Phosphor Icons 官网源码拆解:URL 即存储、水波动画与 7362 Star 图标库的架构实践
前端·架构·github
BigTopOne8 小时前
WebRTC Native / Android 开发学习资源整理
前端
excel9 小时前
nuxt 3 升级 nuxt 4 报错之 hasInjectionContext
前端
何以解忧,唯有..9 小时前
LangChain 工具调用(Tool Calling)实战指南
java·前端·langchain
软件聚导航10 小时前
「聚小软 AI 助手」技术升级:从数据库检索到 RAG 知识库问答
前端·数据库·mysql·微信小程序·小程序·ai编程·rag
恋猫de小郭11 小时前
看懂大模型架构术语,帮助你理解目前常见的大模型开源架构
前端·人工智能·ai编程
yma1611 小时前
通过提示词实现GitHub Pages 和 Nginx 双部署竟然这么简单?
前端