小编TmT*_*ron的帖子

XMLTimeToDateTime忽略毫秒

为什么XMLTimeToDateTime会忽略毫秒?

  Test := XMLTimeToDateTime('2011-11-11T12:41:36.696+01:00', TRUE);
  T2 := FormatDateTime('yyyy''-''mm''-''dd''T''hh'':''nn'':''ss''.''zzz', Test);
Run Code Online (Sandbox Code Playgroud)

之后T2 ='2011-11-11T11:41:36.000'

我正在使用Delphi 2007.

xml delphi datetime

8
推荐指数
1
解决办法
563
查看次数

使用“forRoot”将配置数据传递到角度库的依赖项

我创建了两个 Angular 库,其中一个库依赖另一个库。

需要使用 forRoot 方法配置依赖关系。我如何将配置数据从父库传递到它的依赖项?

例如,假设我们有TopLevelLib,它有OtherLib一个依赖项。需要使用 forRoot 向 OtherLib 传递一个配置对象。

最终用户的AppModule,导入到

@NgModule({
  imports: [
    TopLevelLib.forRoot(someConfigData)
  ],
  declarations: [...],
  exports: [...]
})
export class AppModule { }
Run Code Online (Sandbox Code Playgroud)

TopLevelLib - 由最终用户导入到 AppModule

@NgModule({
  imports: [
    ...
    OtherLib.forRoot(*****what goes in here?*****)
  ],
  declarations: [...],
  exports: [...]
})
export class TopLevelLib {
  static forRoot(config: ConfigObj): ModuleWithProviders {
    return {
      ngModule: SampleModule,
      providers: [{ provide: SomeInjectionToken, useValue: config }]
    };
  }
}
Run Code Online (Sandbox Code Playgroud)

OtherLib - 由 TopLevelLib 导入

@NgModule({
  imports: [...], …
Run Code Online (Sandbox Code Playgroud)

angular angular-library angular-dependency-injection

8
推荐指数
1
解决办法
2939
查看次数

如何对 Observable 使用 AsyncLocalStorage?

我想在NestJs 拦截器中使用AsyncLocalStorage

export interface CallHandler<T = any> {
    handle(): Observable<T>;
}
export interface NestInterceptor<T = any, R = any> {
    intercept(context: ExecutionContext, next: CallHandler<T>): Observable<R> | Promise<Observable<R>>;
}
Run Code Online (Sandbox Code Playgroud)

拦截器函数获取 anext CallHandler返回一个Observable

在这种情况下我不能使用run(运行回调将在callHandler.handle()可观察对象完成之前立即退出):

  intercept(context: ExecutionContext, callHandler: CallHandler): Observable<any> | Promise<Observable<any>> {
    const asyncLocalStorage = new AsyncLocalStorage();
    const myStore = {  some: 'data'};
    return asyncLocalStorage.run(myStore, () => callHandler.handle());
  }
Run Code Online (Sandbox Code Playgroud)

请参阅损坏的 replit-example

我想出的解决方案是这样的:

const localStorage = new AsyncLocalStorage();

export class MyInterceptor …
Run Code Online (Sandbox Code Playgroud)

node.js rxjs nestjs async-hooks

8
推荐指数
1
解决办法
1956
查看次数

Delphi:OleVariant和Generics

请考虑以下代码提取:

type
  MyIntf = interface
    procedure Work(param: OleVariant);
  end;

  MyClass<T> = class
    procedure MyWork(param: T);
  end;

var
  intf: MyIntf;

procedure MyClass<T>.MyWork(param: T);
begin
  //compiler error: E2010 Incompatible types: 'OleVariant' and 'T'
  intf.Work(param);
end;
Run Code Online (Sandbox Code Playgroud)

如上所示,无法使用错误消息进行编译.我怎么Work能从我的泛型类中调用该函数?

delphi generics

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

Delphi析构函数:继承调用后执行代码?

Delphi中在析构函数中继承调用后执行代码真的没问题吗?

您可以在System.Classes中找到它:

destructor TThread.Destroy;
begin
[...]
  inherited Destroy;
  FFatalException.Free;
end;
Run Code Online (Sandbox Code Playgroud)

我认为,在调用继承的Destroy方法之后访问实例成员是个坏主意.

delphi destructor

7
推荐指数
2
解决办法
1825
查看次数

如何处理主线程中的RxAndroid错误

我是rxJava/Android的新手并且惊讶于我的onErrorlambda有时被称为主线程,有时候不会,尽管我使用.observeOn(AndroidSchedulers.mainThread())

示例1:onError在主线程上,
它按预期工作:在主线程onError上调用

Observable.error(new RuntimeException("RTE"))
    .subscribeOn(Schedulers.newThread())
    .observeOn(AndroidSchedulers.mainThread())
    .subscribe(s -> {
                Log.e(TAG, "onNext("+s+")-thread: " + Thread.currentThread().getName());
            },
            throwable -> {
                Log.e(TAG, "onError()-thread: " + Thread.currentThread().getName());
            });
Run Code Online (Sandbox Code Playgroud)

日志输出:

onError()-thread: main
Run Code Online (Sandbox Code Playgroud)

示例2:onError 不在主线程上

Observable.create(new Observable.OnSubscribe<String>() {
    @Override
    public void call(Subscriber<? super String> subscriber) {
        subscriber.onNext("one and only");
    }
})
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.timeout(1, TimeUnit.SECONDS)
.subscribe(s -> {
        Log.e(TAG, "onNext("+s+")-thread: " + Thread.currentThread().getName());
    },
    throwable -> {
        Log.e(TAG, "onError()-thread: " + Thread.currentThread().getName());
    });
Run Code Online (Sandbox Code Playgroud)

输出是这样的: …

error-handling rx-java rx-android

7
推荐指数
2
解决办法
3617
查看次数

Prettier 与 nx 格式:检查

nx 格式:检查elsehtml 文件中后面不应有冒号:

<div *ngIf="isValid; else errors">
Run Code Online (Sandbox Code Playgroud)

但是当我在同一个项目中运行 prettier 时,它需要一个冒号else

<div *ngIf="isValid; else: errors">
Run Code Online (Sandbox Code Playgroud)
  • 为什么这不同?
    我认为nx format:check只是在我的根目录中执行更漂亮?
  • 我缺少一些配置选项吗?

更多信息

在包含角度模板的子目录中,我可以验证该问题:

$ nx format:check --files login.component.html

$ prettier -c login.component.html
Checking formatting...
login.component.html
Code style issues found in the above file(s). Forgot to run Prettier?
Run Code Online (Sandbox Code Playgroud)

请注意,nx 不会报告问题,但 prettier 会报告问题:以下是版本:

$ nx --version
8.5.0
$ prettier --version
1.18.2
Run Code Online (Sandbox Code Playgroud)

prettier nrwl

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

为什么我们在使用类转换器时不应该使用enableImplicitConversion?

类转换器文档说:

隐式类型转换
注意如果您将类验证器与类转换器一起使用,您可能不想启用此功能。

为什么不?

我做了一些测试,没有发现任何问题。
实际上,情况恰恰相反:将class-transformer(带有和enableImplicitConversion=trueReflect -metadata)与class-validator结合使用似乎是一个完美的选择,并且NestJS开箱即用地支持它

class-validator class-transformer

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

Android Studio:静态方法接口中的断点不起作用

Android Studio不会在接口的静态方法中停止.

示例:请参阅项目Conductor(version )的Utils.javagetFilteredNotes接口中的方法:0.9.3

public interface Utils {
    // some lines removed for readability

    static List<Note> getFilteredNotes(AppState appState) {
        List<Note> notes = appState.notes();
        NotesFilter filter = appState.filter();
        return filter(ConsPStack.from(notes), note ->
                filter == NotesFilter.ALL
                        || filter == NotesFilter.CHECKED && note.checked
                        || filter == NotesFilter.UNCHECKED && !note.checked);
    }
Run Code Online (Sandbox Code Playgroud)

当我将接口转换为类时,它工作:

public class Utils 
Run Code Online (Sandbox Code Playgroud)

为什么断点不能在界面上工作?

更多细节:

  • Android Studio版本 2.2.2
  • 虚拟设备: Nexus_6_API_25.avd
    • 安卓: 7.1.1
    • 中央处理器: x86
  • minifyEnabled=false调试版本的设置没有帮助
  • 该项目正在使用retrolambda

java android breakpoints android-studio retrolambda

6
推荐指数
0
解决办法
453
查看次数

如何更改块时间间隔?

当块时间间隔太大时,我们如何更改它?

用例:

  • 我们有一个现有的超表,我们将其设置chunk_time_interval为 1 个月(当使用create_hypertable()时)。
  • 过去几个月这很好,但现在数据速率将增加 1000 倍

例如,我认为我们不能只使用set_chunk_time_interval,因为它不会影响当前块:因此,当数据速率增加时新的月份块刚刚开始时,该块会变得巨大,并且只有较新的块才是正确的-大小。

那么处理这种情况的最佳方法是什么?

因此需要澄清的是:我们想要一个超表,其中旧数据的块大小与新数据不同。

timescaledb

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