Continuations — Callback Method

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

📄 第 406 页 🎬 视频课程

课程章节介绍

同学们,我们接着来看这一页幻灯片的内容,它讲的是在异步调用中,外部服务完成后,回调方法是怎么处理响应的。 当我们发起的外部服务请求全部完成以后,咱们之前写好的回调方法就会被调用。在这个回调方法里,最重要的一步,就是用 `Continuation.getResponse` 这个方法来拿到服务的返回结果。拿的时候,需要用到咱们在发起请求时存下来的那个唯一标签,通过这个标签来识别到底是哪个请求的结果,这样就不会搞混了。 然后,我们把拿到的数据,赋值给一个在 Visualforce 页面上已经定义好的变量,这个变量是用来在页面上显示结果的。设置完之后,方法最后要返回一个 `null`。这里返回 `null` 并不是没意义,它的作用是告诉系统:数据已经准备好了,请把原来的 Visualforce 页面重新渲染一遍。这样,用户就能在页面上看到最新的外部数据了。 这里还有一个非常重要的知识点:在一次延续调用里,我们最多可以创建三个同步请求。注意,这里说的“同步”是指这三个请求会并行发出,同时执行。但是,后续的 Visualforce 处理流程会暂时挂起,直到这三个外部服务全都返回结果了,才会恢复执行。这样就能大大提升整体的响应速度。 不过,大家一定要记住,这种一次发多个并行请求的功能,只能在 Visualforce 页面的上下文中使用。如果你是在 Visualforce 页面以外的地方,比如直接在开发者控制台里用匿名窗口去调用这些动作方法,那是没办法创建这种延续回调的。换句话说,整个异步并行机制,是专门为 Visualforce 页面设计的。 好了,关于回调方法和并行调用这部分,就讲到这里。大家有问题可以随时提出来。

关键词

Apex Salesforce Developer Guide