我已经阅读了油门时间文档,但我没有完全了解操作员。
我知道如何throttleTime(1000)运作。事件到达后,它将跳过所有后续事件 1 秒,然后再次开始此过程。
我难以理解的是究竟是如何ThrottleConfig工作的,这是操作符的第三个参数。
throttleTime<T>(
duration: number,
scheduler: SchedulerLike = async,
config: ThrottleConfig = defaultThrottleConfig): MonoTypeOperatorFunction<T>
Run Code Online (Sandbox Code Playgroud)
leading和trailing属性如何改变源 Observable 的功能?
我已经阅读了很多文档,但他们没有清楚地解释这一点。
所以有四种选择:
{ leading: true, trailing: false }:{ leading: false, trailing: true }:{ leading: false, trailing: false }:{ leading: true, trailing: true }:我有一个es6类User和一个全局函数map(),如下所示:
class User {
constructor(public name: string) {}
}
const map = <T, R>(project: (value: T) => R) => {}
Run Code Online (Sandbox Code Playgroud)
而不是写下面的内容:
map((value) => new User(value))
Run Code Online (Sandbox Code Playgroud)
我想(不知何故)写下这样的东西:
map(new User)
Run Code Online (Sandbox Code Playgroud)
我不确定这是否可行.
为了避免组件内部的 Observable 内存泄漏,我takeUntil()在订阅 Observable 之前使用了运算符。
我在我的组件中写了这样的东西:
private unsubscribe$ = new Subject();
ngOnInit(): void {
this.http
.get('test')
.pipe(takeUntil(this.unsubscribe$))
.subscribe((x) => console.log(x));
}
ngOnDestroy(): void {
this.unsubscribe$.next();
this.unsubscribe$.complete(); // <--- ??
}
Run Code Online (Sandbox Code Playgroud)
最后我的问题如下:
我需要写this.unsubscribe$.complete();还是next()就够了?
是unsubscribe$要由垃圾收集器没有完成被抓住?
请解释是否存在差异或无关紧要。我不希望我的组件出现内存泄漏。
我在Startup.cs中有以下代码,并期望它覆盖默认的序列化选项.我希望它覆盖我的asp net core 2.0项目中的每一个序列化,但是动作返回值不正确,我认为这个全局属性在core 2.0中不起作用
我把它写在app.UseMvc()之前的配置中;
JsonConvert.DefaultSettings = () => new JsonSerializerSettings
{
Formatting = Formatting.Indented,
TypeNameHandling = TypeNameHandling.Objects,
ContractResolver = new CamelCasePropertyNamesContractResolver(),
Converters = new List<JsonConverter> { new StringEnumConverter() }
};
Run Code Online (Sandbox Code Playgroud)