小编goo*_*taw的帖子

dart2js后异步函数中两个keyCodes的比较不正确

我不明白dart2js代码的这种行为.
我只在async函数中使用它,并且只在编译成JS之后.

e.keyCode is equal 13
KeyCode.ENTER is equal 13
Run Code Online (Sandbox Code Playgroud)


(e.keyCode == KeyCode.ENTER) is false
Run Code Online (Sandbox Code Playgroud)

这是调试我的问题的简单代码.
这是怎么回事?

import 'dart:html';

main() async
{
  await for(KeyboardEvent e in window.onKeyDown)
  {
    print('e.keyCode : ${e.keyCode}');
    print('e.keyCode.hashCode : ${e.keyCode.hashCode}');
    print('KeyCode.ENTER : ${KeyCode.ENTER}');
    print('KeyCode.ENTER.hashCode : ${KeyCode.ENTER.hashCode}');
    print('e.keyCode.runtimeType : ${e.keyCode.runtimeType}');
    print('KeyCode.ENTER.runtimeType : ${KeyCode.ENTER.runtimeType}');
    print('e.keyCode == KeyCode.ENTER ${e.keyCode == KeyCode.ENTER}');
    print('e.keyCode != KeyCode.ENTER ${e.keyCode != KeyCode.ENTER}');
    int a = e.keyCode;
    int b = KeyCode.ENTER;
    print('a = $a');
    print('b = $b');
    print('a.hashCode = ${a.hashCode}');
    print('b.hashCode = ${b.hashCode}');
    print('a …
Run Code Online (Sandbox Code Playgroud)

dart dart2js dart-async

6
推荐指数
1
解决办法
103
查看次数

标签 统计

dart ×1

dart-async ×1

dart2js ×1