我在一个库中有一个类,其中有一个名为'onMessage'的方法,在事件发生时执行。当onMessage执行时需要调用主应用程序中一个类的'回调'方法。 我原以为这将通过构造函数完成,但我无法弄清它是如何实现的。
编辑
在此版本中,当我尝试创建WebsocketService的实例“wss”时,main.dart中会收到一个警告。
// in library class - no warnings
Object returnResults;
WebsocketService(Object callback()) {
returnResults = callback;
}
void onMessage(data) {
var json = JSON.decode(data);
var echoFromServer = json['response'];
print("Received message: $echoFromServer");
returnResults(echoFromServer); // declared 'incoming' in main.dart
}
// +++ in main.dart ++++++++
WebsocketService wss;
class TestAsynchWS {
TestAsynchWS() { // *** Dart Editor warning here
// 0 positional arguments expected but 1 found
wss = new WebsocketService(incoming);
}
void incoming(echoFromServer) {
// code
}
var returnResults;
,而在 main.dart 中有wss.returnResults = incoming;
。 - grohjyobject returnResults;
、Object callback()
和returnResults = callback;
。同时,你还应该从main.dart中删除incoming
(wss = new...行)。在你添加了我之前评论中的代码后,一切都应该正常工作。 - grohjy