小编Jul*_*SIN的帖子

关于主题名称的最佳实践是什么

关于使用 google-pubsub 的主题名称的最佳实践是什么。

如果我有论文事件:

  • 客户电子邮件已更新
  • 客户地址已更新
  • 客户创建
  • 客户已删除
  • 文章已创建
  • 文章删了...

关于主题名称的最佳实践是什么:

  • 创建一个customer主题和一个article主题,每个主题都包含其域的事件
  • 创建一个deleted包含customer deletedarticle deleted等的主题。
  • 通过事件创建一个话题customer:createdcustomer:deleted等...

或其他 ..

google-cloud-pubsub

14
推荐指数
1
解决办法
2929
查看次数

创建一个 AxiosError 对象用于测试目的

我正在寻找一种轻松创建的方法AxiosError(从 axios lib 本身或外部助手)

上下文。

我有一个我想测试的功能。

import { AxiosError } from 'axios';

export function isEmailConflict({ error }: { error: AxiosError<{ type?: string; message?: string }> }) {
// ...
}
Run Code Online (Sandbox Code Playgroud)

到目前为止我是这样执行的

import { AxiosError } from 'axios';
// ...
  describe('isEmailConflict', () => {
    function newConflicError(): AxiosError {
      return {
        isAxiosError: true,
        name: '',
        message: '',
        toJSON: () => ({}),
        config: {},
        response: {
          data: { type: 'aa', message: 'bb' },
          status: 409,
          statusText: 'Conflict',
          headers: {},
          config: {}, …
Run Code Online (Sandbox Code Playgroud)

javascript typescript axios

13
推荐指数
2
解决办法
6394
查看次数

Mockgoose 在运行 mockgoose.prepareStorage 时下载 234mb

我有一个节点应用程序,可以访问使用 mocha 和 mockgoose 测试的 mongodb 抛出的猫鼬。我最近搬到了 mockgoose 7.0.5。我按照 github 上的入门指南将我的 mocha 超时时间提高到 2 分钟。

这是我在测试中的前功能:

import mongoose from 'mongoose';
var Mockgoose = require('mockgoose').Mockgoose;
[...]

const mockgoose = new Mockgoose(mongoose);

before(function(done) {
  try {
    console.log('BEFORE prepareStorage');
    mockgoose.prepareStorage().then(() => {
    console.log('IN prepareStorage');
      mongoose.connect('mongodb://example.com/TestingDB', function(err) {
        done(err);
      });
    }).catch((error) => {
      done(error);
    });
  } catch(e) {
    done(e);
  }
  console.log('AFTER prepareStorage');  
});

beforeEach(function(done) {
  mockgoose.helper.reset();
  done();
});
Run Code Online (Sandbox Code Playgroud)

当我运行测试时,在这mockgoose.prepareStorage一步中,mockgoose 似乎正在下载一些东西。

BEFORE prepareStorage
AFTER prepareStorage
Completed: 0.1 % (0.2mb / 234.3mb
Run Code Online (Sandbox Code Playgroud)

我想这与请求的 2 …

javascript mocha.js mongoose node.js mockgoose

5
推荐指数
1
解决办法
1092
查看次数

Angular 4 - "等待操作"的正确方法是什么?

我遇到了一个简单的问题,它有一个hacky解决方案setTimeout(...,0).

看看这个简单的代码:

@Component({
  selector: 'my-app',
  template: `
    <div>
      <input value='Fill Data' type='button' (click)='fill()'/>
      <span *ngFor="let o of Items" class='mySpan'>Span To Detect<br></span>
    </div>
  `,
})
export class App {
  Items:Array<number> = new Array<number>();

  fill()
  {
   this.Items = [1,2,3,4,5,6,7,8,9,10]
   this.analyzeDom(); //this has to run here
  }

  analyzeDom()
   {
      alert($("div .mySpan").length) // "0"

     //BUT if I set this hacky trick , it works
     // setTimeout(function (){  alert($("div .mySpan").length)},0) // "10"
   }
}
Run Code Online (Sandbox Code Playgroud)

如果单击该按钮,则警报显示"0".我明白为什么会这样.这是因为Angular没有完成其实际填充的周期ngFor.

然而 - 做这个伎俩setTimeout(..,0)对我来说似乎有些苛刻,我宁愿不相信它.

题: …

javascript angular

5
推荐指数
1
解决办法
4291
查看次数

Angular 2如何在Internet Explorer 11上改进DOM绘制时间

在Internet Explorer 11上改进Angular 2应用程序性能是否有任何特殊技巧?

我们的网站在Chrome和Firefox中都很常见,但是IE 11上的DOM呈现得非常缓慢.我理解其中一些是浏览器引擎的限制,但是当单个更改检测周期导致IE 11上的DOM绘制时间为30-40 ms时,我觉得我们的实施还可以做些其他事情.根据记录,Chrome绘制DOM的时间从不超过1毫秒,因此IE的行为速度比对应的慢约30至40倍.

这是针对DOM事件(滚动)在我们的localhost实例上进行的性能监视的IE11快照.

在此输入图像描述

将此与像Guardian这样的网站进行比较,后者也使用Angular 2.他们的网站的DOM事件处理时间几乎总是低于2毫秒,他们在DOM上显示的内容远比我们复杂得多.

在此输入图像描述

这让我认为有一些特别适合IE 11的优化技术.这是我们迄今为止尝试过的一些事项:

  1. 从SystemJS迁移到Webpack.提供初始加载速度,但DOM绘画持续时间没有差异.
  2. 我们使用core-js而不是es6-shim
  3. 使用纯管道进行格式化并避免模板中的任何函数调用.

欢迎大家提出意见.

javascript internet-explorer dom typescript angular

3
推荐指数
1
解决办法
5343
查看次数