-1

我正在尝试使用架子上的 logRequests 函数。功能如下:

Middleware logRequests(
    {void logger(String message, bool isError)?}
)

实现就像:

Middleware logRequests({void Function(String message, bool isError)? logger}) => ...

我在这里调用 logRequests:

final handler = Pipeline().addMiddleware(logRequests()).addHandler(app);

它工作得很好,但我想要那个可选的记录器功能,这样我就可以对消息做任何我想做的事情。问题是我似乎无法在这里将函数作为参数传递......我已经搜索了如何将函数作为参数传递,但我得到的只是“位置参数太多:预期为 0,但找到了 1”。

我已经尝试以多种方式定义函数,最后一种(如这里的答案所示是:

void Function(String s, bool b) log() => (String s, bool b) => print('');

并称它为:

final handler = Pipeline().addMiddleware(logRequests(log)).addHandler(app);

这和我尝试过的所有其他事情总是给我上面提到的错误。

那么我怎样才能在这里传递一个函数呢?

谢谢

4

1 回答 1

0

所以,在尝试了更多的东西之后,找到了如何去做。

功能:

void _log(String msg, bool isError){ print('test Logger'); }

调用它:

final handler = Pipeline().addMiddleware(logRequests(logger: _log)).addHandler(app);

于 2021-07-16T11:58:10.923 回答