我想了解可视代码中显示的intellisense让我更加困惑
debounce(
durationSelector: (value: {}) => SubscribableOrPromise<any>
): MonoTypeOperatorFunction<{}>
从上面的例子中,我想我理解了以下内容:
debounce
是函数的名称durationSelector
是一个函数,它只有一个参数:
一个。 value
以Object为参数
湾SubscribableOrPromise<any>
是函数将返回的类型MonoTypeOperatorFunction<{}>
,当它已经返回MonoTypeOperatorFunction<{}>
时,无法理解函数如何返回SubscribableOrPromise<any>
,这是我感到困惑并且无法理解的地方当函数已经返回
MonoTypeOperatorFunction<{}>
时,无法理解函数如何返回SubscribableOrPromise<any>
这不是这里描述的,你没有一个函数可以返回MonoTypeOperatorFunction
和SubscribableOrPromise
。你有两个功能:
debounce
;和durationSelector
对debounce
的论证(在你的代码中可能是匿名的)。debounce
返回MonoTypeOperatorFunction<{}>
,因此结果可以传递给pipe
(这需要OperatorFunction
s,其中这是一个子类型)。
debounce
需要函数,因为你作为参数传递给它返回SubscribableOrPromise<any>
,这行:
(value: {}) => SubscribableOrPromise<any>
是论证的声明,durationSelector
;这是一个function type。
我建议阅读“高阶函数”,因为如果您要使用RxJS,这是一个非常重要的概念。
debounce
的单个参数看起来像以lambda形式编写的函数引用:
(value: {}) => SubscribableOrPromise<any>
箭头=>
前面的部分表示功能参数。箭头后面的部分是返回类型。 SubscribableOrPromise
应该意味着你的返回类型应该包含一个Promise对象的then
函数或subscribe
中使用的RxJs函数
尝试这样的功能:
function toPromise(value) {
return Promise.resolve(value);
}
// code in between
.debounce(toPromise);
这只是将值作为ES6承诺返回。将toPromise
更改为您想要的函数内容。