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