小编Gut*_*nYe的帖子

开玩笑:计时器和承诺不能正常工作.(setTimeout和async函数)

关于此代码的任何想法

jest.useFakeTimers() 

it('simpleTimer', async () => {
  async function simpleTimer(callback) {
    await callback()    // LINE-A without await here, test works as expected.
    setTimeout(() => {
      simpleTimer(callback)
    }, 1000)
  }

  const callback = jest.fn()
  await simpleTimer(callback)
  jest.advanceTimersByTime(8000)
  expect(callback).toHaveBeenCalledTimes(9)
}
Run Code Online (Sandbox Code Playgroud)

```

失败了

Expected mock function to have been called nine times, but it was called two times.
Run Code Online (Sandbox Code Playgroud)

但是,如果我await从LINE-A中删除,则测试通过.

Promise和Timer不能正常工作吗?

我认为开玩笑的原因是等待第二个承诺来解决.

javascript testing jestjs

25
推荐指数
2
解决办法
7235
查看次数

使用 jq json cli 以千位分隔符格式化数字

鉴于{"a": 1234567890},我想1,234,567,890在结果中,如何使用 jq 来完成此操作

echo '{"a": 1234567890}' | jq '.a | FORMAT?'
Run Code Online (Sandbox Code Playgroud)

感谢@peak的回答,解决方案是

echo '{"a": 1234567890}' | jq -r 'def h: [while(length>0; .[:-3]) | .[-3:]] | reverse | join(","); .a | tostring | h'
//-> 1,234,567,890
Run Code Online (Sandbox Code Playgroud)

formatting json integer jq

7
推荐指数
1
解决办法
1898
查看次数

Github 搜索:如何用多种语言进行搜索

Github 搜索支持

<keyword> language:javascript
Run Code Online (Sandbox Code Playgroud)

但我想要这样的东西:

<keyword> language:javascript OR language:typescript
Run Code Online (Sandbox Code Playgroud)

这样我就可以在一次搜索中按星级对它们进行排序或进行其他过滤。

原因是:withtypescript越来越流行,单一的过滤器language:javascript已经不够用了。

search github

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

Python中的类似工具?(来自Ruby的工具)

  1. gem:包管理.
  2. bundler:依赖管理
  3. rspec:测试框架.
  4. 观察者:自动测试工具
  5. 院子:文档工具.
  6. rdoc Markdown:写代码评论的降价.
  7. rvm:Ruby版本管理器.
  8. rake:任务工具.

我想在Python中找到一些工具可以完成上面描述的工作.

ruby python

4
推荐指数
1
解决办法
283
查看次数

标签 统计

formatting ×1

github ×1

integer ×1

javascript ×1

jestjs ×1

jq ×1

json ×1

python ×1

ruby ×1

search ×1

testing ×1