Dart 错误状态:StreamSink已关闭

Dart 错误状态:StreamSink已关闭,dart,Dart,我是Dart新手,尝试编写一些测试web服务器。 这里没有任何问题,只是查看了文档,结果是一样的。 如果有人知道如何解决这个问题,我将非常感谢 主要 测试模块 import 'dart:io'; Future<void> testHandler(HttpRequest req) async { await req.response ..write("hello") ..close(); } 尝试加载页面时。我无法重现您的问题,但以下代码有问题: await req.

我是Dart新手,尝试编写一些测试web服务器。
这里没有任何问题,只是查看了文档,结果是一样的。
如果有人知道如何解决这个问题,我将非常感谢

主要

测试模块

import 'dart:io';
Future<void> testHandler(HttpRequest req) async {
  await req.response
  ..write("hello")
  ..close();
}

尝试加载页面时。

我无法重现您的问题,但以下代码有问题:

  await req.response
  ..write("hello")
  ..close();
这不会等待从
close()
返回的
Future
,而是尝试等待
req.response
,它不是
Future

因此,您需要的是以下内容:

Future<void> testHandler(HttpRequest req) async {
  await (req.response
    ..write("hello"))
    .close();
}
由于我们返回一个
Future
(因为out方法是
async
),我们可以从
close()
返回
Future


但由于我无法重现你的问题,我不知道这是否能解决你的问题。但是,通过我的更改,代码将更加正确。:)

我无法重现您的问题,但以下代码存在问题:

  await req.response
  ..write("hello")
  ..close();
这不会等待从
close()
返回的
Future
,而是尝试等待
req.response
,它不是
Future

因此,您需要的是以下内容:

Future<void> testHandler(HttpRequest req) async {
  await (req.response
    ..write("hello"))
    .close();
}
由于我们返回一个
Future
(因为out方法是
async
),我们可以从
close()
返回
Future


但由于我无法重现你的问题,我不知道这是否能解决你的问题。但是,通过我的更改,代码将更加正确。:)

你能添加完整的例外吗?我认为你删去了错误的第一行,这应该可以解释问题。它实际上在标题中,但经过编辑,所以不会引起混淆。你能添加完整的例外吗?我想你删掉了错误的第一行,这应该可以解释问题。它实际上在标题中,但经过编辑,所以不会引起混淆。谢谢,但没有解决我的问题。啊,这是我的错误,我找到了关闭响应流的地方,无论如何,谢谢:)谢谢,但没有解决我的问题。啊,这是我的错误,我找到了关闭响应流的地方,无论如何,谢谢:)
Future<void> testHandler(HttpRequest req) async {
  final response = req.response;
  response.write("hello");
  await response.flush();
  return response.close();
}