getGenerator = async function* getGenerator(value,duration,delay) {
if(delay) {
await Promises.delay(delay);
}
let defaultTime = duration||1000;
let defaultDelay = 10;
let tickCounts = defaultTime/defaultDelay;
for (let i = 0; i <= tickCounts; ++i) {
await Promises.delay(defaultDelay);
yield i*value/tickCounts;
}
yield value;
}