You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

BrightFutures异步请求的回调是否始终运行在主线程?

BrightFutures回调线程说明

你的结论不正确,onSuccess和onFailure的回调并非始终运行在主线程,具体执行线程遵循以下规则:

  • 默认情况下,回调会运行在发起请求时当前所处的线程上下文。如果调用makeSomeRequest的代码在主线程,回调才会落在主线程;如果请求是在后台线程发起的,回调默认也会在该后台线程执行。
  • 你可以主动指定回调的执行线程,通过on:参数传入目标ExecutionContext,比如强制让回调跑在主线程:
service.makeSomeRequest(
    param1: value1,
    param2: value2
)
.onSuccess(on: Queue.main) { [weak self] result in
    ...
}
.onFailure(on: Queue.main) { [weak self] error in
    ...
}
  • 若makeSomeRequest内部已经通过BrightFutures的API指定了回调的执行上下文,那么最终的回调线程会以内部设置为准,这取决于该请求方法的具体实现。

内容的提问来源于stack exchange,提问作者AlanSTACK

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 23:07:03