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

Flutter Http请求获响应但then回调接收null问题排查

问题排查与解决

你的问题出在Future链式调用的返回值传递上:

第一个then回调是空实现,没有返回任何值,Dart会默认将其视为返回Future<void>,所以后续第二个then接收到的参数自然是null。

解决方法一:移除多余的空then

直接保留需要处理结果的then即可:

VehicleHttpService.saveData(Constant.POST_VEHICLE_URL, widget.vehicle)
  .then((String value){
    print("#########");
    print(value); // 现在能拿到正确的result了
    print("#########");
  })
  .whenComplete((){
    Navigator.of(context).pop();
  });

解决方法二:在第一个then中返回参数

如果确实需要保留多个then(比如有分步业务逻辑),要确保每个then都把处理后的值返回给下一个回调:

VehicleHttpService.saveData(Constant.POST_VEHICLE_URL, widget.vehicle)
  .then((value){
    // 这里可添加你的业务逻辑
    return value; // 必须返回value,否则下一个then会拿到null
  })
  .then((String value){
    print("#########");
    print(value); // 现在能拿到正确的result了
    print("#########");
  })
  .whenComplete((){
    Navigator.of(context).pop();
  });

补充说明:你的saveData方法返回的是Future<String>,所以then回调里的value无需加?标记可空,直接写String value即可,避免空安全的冗余疑惑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 03:05:23