Make Long-Running Callouts with Continuations

DEX455 - Apex 集成与工具完全指南:Callouts、命名凭据、WSDL2Apex、Mock 测试

📄 第 403 页 🎬 视频课程

课程章节介绍

好,同学们,咱们接下来看一个很实用的功能,叫 ,Continuations,,中文呢,可以理解成“续延”或者“回调延续”。用它来处理那些耗时比较长的对外部服务的调用,特别合适。 想象一下,你在一个 Visualforce 页面或者 Lightning 组件里,需要去调用外部的 Web 服务,比如查一个第三方的物流信息,或者做个信用检查。这种请求有时候网络延迟大,可能要好几秒甚至更久才能返回结果。如果咱们按普通的同步方式去调用,那用户的界面就会卡死在那里,体验非常糟糕。 所以 Apex 提供了 Continuations 这个机制。它本质上就是一种,异步回调,。你从页面上发起一个长时间运行的请求,这个请求会先被挂起,去后台慢慢执行,但,不会阻塞当前的线程,。等服务器那边的响应回来了,Apex 会自动调用你准备好的一个回调方法,把结果传进去。 你可以把这个回调方法看作是“延续”了原始请求的处理逻辑——所以叫 Continuation。响应回来了,咱们就在这个回调方法里接着处理,然后把结果展示到页面上。 这样用户在使用的时候,界面可以继续响应,比如显示一个加载动画,而不会“假死”。而且整个过程代码写起来很清晰:你发起请求,指定一个回调函数,然后该干嘛干嘛,响应到了自然会触发那个回调。 总结一下重点: - Continuations 用于,长时间运行的外部服务调用,。 - 它是从 ,Visualforce 页面,或 ,Lightning 组件, 发起的。 - 采用,异步回调,模式,响应通过你指定的回调方法返回。 - 这样就不会阻塞用户界面,体验流畅。 好,关于这个 Continuations 的引入和基本概念,咱们就聊到这里。接下来咱们会看具体的代码怎么实现,以及有哪些注意事项。

关键词

Apex Salesforce Developer Guide