无法理解rxjs中的去抖动参数

问题描述 投票:-3回答:2

我想了解可视代码中显示的intellisense让我更加困惑

enter image description here

debounce(
durationSelector: (value: {}) => SubscribableOrPromise<any>
): MonoTypeOperatorFunction<{}>

从上面的例子中,我想我理解了以下内容:

  1. debounce是函数的名称
  2. durationSelector是一个函数,它只有一个参数: 一个。 value以Object为参数 湾SubscribableOrPromise<any>是函数将返回的类型
  3. MonoTypeOperatorFunction<{}>,当它已经返回MonoTypeOperatorFunction<{}>时,无法理解函数如何返回SubscribableOrPromise<any>,这是我感到困惑并且无法理解的地方
rxjs6 debounce
2个回答
1
投票

当函数已经返回MonoTypeOperatorFunction<{}>时,无法理解函数如何返回SubscribableOrPromise<any>

这不是这里描述的,你没有一个函数可以返回MonoTypeOperatorFunctionSubscribableOrPromise。你有两个功能:

  1. debounce;和
  2. durationSelectordebounce的论证(在你的代码中可能是匿名的)。

debounce返回MonoTypeOperatorFunction<{}>,因此结果可以传递给pipe(这需要OperatorFunctions,其中这是一个子类型)。

debounce需要函数,因为你作为参数传递给它返回SubscribableOrPromise<any>,这行:

(value: {}) => SubscribableOrPromise<any>

是论证的声明,durationSelector;这是一个function type

我建议阅读“高阶函数”,因为如果您要使用RxJS,这是一个非常重要的概念。


-1
投票

debounce的单个参数看起来像以lambda形式编写的函数引用:

(value: {}) => SubscribableOrPromise<any>

箭头=>前面的部分表示功能参数。箭头后面的部分是返回类型。 SubscribableOrPromise应该意味着你的返回类型应该包含一个Promise对象的then函数或subscribe中使用的RxJs函数

尝试这样的功能:

function toPromise(value) {
    return Promise.resolve(value);
}

// code in between
.debounce(toPromise);

这只是将值作为ES6承诺返回。将toPromise更改为您想要的函数内容。

© www.soinside.com 2019 - 2024. All rights reserved.