小编Ark*_*kan的帖子

如何在 Dart 中测试流

如何在 dart 中测试流?我有这个代码:

test('words are reading sequentially correct', () {
  WordTrackerInterface wordTracker = WordTracker.byContent('0 1 2');
  wordTracker.setWordsCountPerChunk(1);
  var stream = wordTracker.nextWordStringStream();

  expect(
      stream,
      emitsInOrder(List<Word>.generate(
          6, (i) => i > 2 ? Word('') : Word(i.toString()))));

  for (int i = 0; i < 6; i++) {
    wordTracker.nextWord();
  }
});
Run Code Online (Sandbox Code Playgroud)

我需要测试该成员数据Word::content这是一个String等于在所提供的emitsInOrder

类似于以下内容的流:

expect(
    stream,
    emitsInOrder(List<Word>.generate(
        6, (i) => i > 2 ? Word('') : Word(i.toString()))),
    expect((Word actual, Word expected) {
  return actual.content == expected.content;
}));
Run Code Online (Sandbox Code Playgroud)

reactive-programming dart

9
推荐指数
3
解决办法
5788
查看次数

为什么click事件被触发两次?

有人可以告诉我,为什么事件会被激活两次以下代码:http: //jsfiddle.net/m8heyzgz/3/ 请打开你的控制台,firefox或chrome有控制台并在点击'div1'后观察结果,那么事件遍历顺序将是:

  • DIV3
  • DIV2
  • DIV1
  • DIV3
  • DIV2
  • DIV1

据我所知,捕获阶段可以从上到下,冒泡阶段可以从目标到父节点.

我的问题为什么,它以相同的顺序被解雇了2次?

HTML:

<div id="div1">
    <div id="div2">
        <div id="div3">
            <form>
                <ul>
                    <li>
                        <label>                            
                            <div>
                                <div>div1</div>                            
                            </div>
                            <div>
                                <div>div2</div>                            
                            </div>
                            <div>                                  
                                <input type="checkbox" name="div3" value="div3" />
                            </div>
                        </label>
                    </li>
                </ul>
            </form>
        </div>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

JS:

var d1 = document.getElementById('div1');
var d2 = document.getElementById('div2');
var d3 = document.getElementById('div3');

var f = function(e) {
    console.log(e.currentTarget);
}

d1.addEventListener('click', f);
d2.addEventListener('click', f);
d3.addEventListener('click', f);
Run Code Online (Sandbox Code Playgroud)

html javascript events addeventlistener

2
推荐指数
1
解决办法
713
查看次数