HUH函数
这是我在playcode中创建的函数,也许我应该澄清该函数应该是准确的,该函数总是在给定时间后返回确切的数量。/*** @example* const sub = changeValueOverTime(2, 500, -10320, 1000).subscribe(retrunValues => {* valueToChange = changeValueOverTimeHelper(sub, retrunValues);* });* @param intevalTime Rate of Change in Milliseconds* @param time Time to finish in Milliseconds* @param amount amount that gets added or subtracted from the `initialValue`* @param initialVaule Initial Value.*/function changeValueOverTime(intevalTime: number, time: number, amount: number, initialVaule: number): Observable < [number, boolean, number] > { const change = (amount / time) * intevalTime; const initialDate = new Date(); return rxjs.interval(intevalTime).pipe( rxjs.operators.map(() => [ initialVaule + (change * (new Date().getTime() - initialDate.getTime())) / intevalTime, new Date().getTime() - initialDate.getTime() >= time ? true : false, initialVaule + (change * time) / intevalTime ]) );}/*** @example* const sub = changeValueOverTime(2, 500, -10320, 1000).subscribe(retrunValues => {* valueToChange = changeValueOverTimeHelper(sub, retrunValues);* });* @param subscipton Subscription to unsubscribe from when ``returnValues[1]`` is `true`*/function changeValueOverTimeHelper(subscipton: Subscription, returnValues: [number, boolean, number]): number { if (returnValues[1] === true) { subscipton.unsubscribe(); return returnValues[2]; } else { return returnValues[0]; }}const sub = this.changeValueOverTime(5, 1000, 100, 0).subscribe(retrunValues => { console.log(changeValueOverTimeHelper(sub, retrunValues));});