dart - 客户端,那么()还是其他?

标签 dart dart-async

我如何在客户端使用“ future ”?

并且,如何在没有catch事件的情况下阻止代码执行?

import 'dart:html';
import 'dart:convert';
import 'dart:async';

Map data;

Future<String> ft_get_pseudo()
{
  InputElement button;
  InputElement text;

  text = querySelector('[name="pseudo"]');
  button = querySelector('[name="push"]');
  button.onClick.listen((_) => text.value);
}

void    main()
{
    WebSocket wss;
  String encode;

  data = new Map();
    wss = new WebSocket('ws://127.0.0.1:4040/ws');
  ft_get_pseudo().then((name)
  {
    data['pseudo'] = name;
    encode = JSON.encode(data);
    wss.onOpen.listen((_) => wss.send(encode));
    wss.onMessage.listen((msg) => print("Msg received : ${msg.data}"));
  });
}

我在ecmascript 6中看到了Promise函数,有一种使用它的方法,还是这个主意?

HTML:

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <script type="application/dart" src="client.dart"></script>
    <link rel="stylesheet" href="style.css" type="text/css">
    <title>Client</title>
</head>
<body>
<div id="console">
</div>
<input type="text" name="pseudo" size="20" placeholder="pseudo">
<input type="button" name="push" value="Send">
</body>
</html>

最佳答案

我认为您想做这样的事情,但我还不完全了解您要完成的工作。
您可以仅添加一条您有不同需求的评论吗?

Map data;

void main() {
  //(querySelector('[name="push"]') as ButtonInputElement).onClick.listen(btnClickHandler);
  (querySelector('[name="push"]') as ButtonInputElement).onClick.first.then(btnClickHandler);

  // this would work too, because every element has the click event.
  // querySelector('[name="push"]').onClick.listen(btnClickHandler);
}

void btnClickHandler(MouseEvent e) {
  String name = (querySelector('[name="pseudo"]') as TextInputElement).value;    

  data = {'pseudo': name}; 
  String encode = JSON.encode(data);

  WebSocket wss = new WebSocket('ws://127.0.0.1:4040/ws');
  wss.onOpen.listen((_) => wss.send(encode));
  wss.onMessage.listen((msg) => print("Msg received : ${msg.data}"));
}

关于dart - 客户端,那么()还是其他?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22734574/

相关文章:

dart - 实例化Dart类时,防止类属性为null

flutter - 导航时如何在抖动中修复黑屏?

dart - 有没有人设法从谷歌登录 (Flutter) 获取 id token

dart - 在Dart中挑选N个唯一的随机枚举

flutter - 不可为 null 的实例字段 ['controller' ] 必须在 flutter 中初始化

webgl - 从 ImageElement 加载获取 Future

mongodb - 两次调用Future后出现NoSuchMethodError

dart - 我如何知道我的代码何时完成 Dart 区域中的所有异步工作?

foreach - Dart - 是否有可能改变 future.forEach。到 map ?

unit-testing - 如何在Dart中测试异步Stream