ant-design/components/_util/raf.ts
Junbin Huang d78c0f2707
Chore/fix master conflict (#14126)
* adjust table fixed column z-index (#14036)

fix #13930

* 📝 Add instruction for one column without width left in fixed table

* Add full PR template link in template (#14061)

* add full tmpl link

* adjust

* simplify it

* add cn link

* Fix Affix flickering when scrolling

* update

* fix: top border disappeared under some ie9

* fix calendar month range display (#14049)

* Fix tslint warning

* Correct typescript usage (#14074)

* 🐛 Fix steps style under IE9

close #14001

* 🐛 tweak style for not affecting vertical steps

* 📝 enhance upload documentation

* Input.Group with TimePicker disappear icon: https://codepen.io/mraiguo/pen/QzvvvE?editors=0010

* 🐛 Fix disabled button style in DatePicker panel

https://user-images.githubusercontent.com/507615/50693143-17505400-1071-11e9-9114-b150bef8f7f6.png

* 📝 site: fix BackTop been covered by footer

close #14093

* Update PULL_REQUEST_TEMPLATE.md

* Update pr_cn.md

* 🐛 Fix nested Timeline last item missing line (#14110)

close #14108

* init Spin should also support delay trigger (#14105)

fix #14100

* Update table docs

* bugfix

* Format

* update snapshot

* test: fix spin test
2019-01-06 13:25:59 +08:00

35 lines
652 B
TypeScript

import raf from 'raf';
interface RafMap {
[id: number]: number;
}
let id: number = 0;
const ids: RafMap = {};
// Support call raf with delay specified frame
export default function wrapperRaf(callback: () => void, delayFrames: number = 1): number {
const myId: number = id++;
let restFrames: number = delayFrames;
function internalCallback() {
restFrames -= 1;
if (restFrames <= 0) {
callback();
delete ids[id];
} else {
ids[id] = raf(internalCallback);
}
}
ids[id] = raf(internalCallback);
return myId;
}
wrapperRaf.cancel = function(pid: number) {
raf.cancel(ids[pid]);
delete ids[pid];
};