使用setTimeout返回函数的值
Return value from function whilst using setTimeout
是否有任何方法可以让函数运行setTimeout并返回分配给变量的值?
我的意思是这样的一个例子:
function count(start, target) {
if (start < target) {
start += 0.1;
return start;
} else if (start > target) {
return target;
}
// i'm fully aware the return above will prevent this line occur
// this is my issue currently
setTimeout(function () {
count(start, target)
}, 1000);
}
var el = document.getElementById('test');
var value = count(0.0, 1.0); //get the opacity value
function check() {
el.style.opacity = value; //assign what the value is in this moment
if (value != 1.0) {
setTimeout(check, 0);
}
}
check();
我知道这段代码不会像我想要的那样工作,因为return
exit是函数,我写它是为了解释我要做的事情。
我想这样做的原因是我有一个元素,我想通过改变它的不透明度来淡入。
所以我有一个函数,可以使用我想要的任何缓和将起始值增加到目标值,然后返回所述值,该值将分配给元素的透明度属性。
我不想把元素传递给这个count
函数,因为这意味着当我想要动画元素之外的其他东西时,它限制了它的使用。
这个问题的解决方案是什么?
我认为你要做的是再次调用count
方法,如果传递给start
和target
的值不一样的话
function count(start, target) {
var ret;
if (start < target) {
ret = start + 0.1;
} else if (start > target) {
ret = target;
}
if (start != target) {
setTimeout(function () {
count(ret, target)
}, 1000);
}
return ret;
}
相关文章:
- ES6构造函数返回基类的实例
- 从函数返回角度承诺
- 如何从jquery函数返回变量
- 根据是否解析了 Promise 从函数返回值
- Javascript函数返回未定义
- 如果函数返回True,则显示Javascript按钮
- Google Sheet自定义函数返回0
- 从Ajax函数返回值
- 使用for循环从Javascript中的函数返回多个值
- 谷歌地图:函数返回未定义的值在console.log中运行良好
- 从函数中的函数返回数组时出错
- 如何从嵌套的API函数返回值
- 从Mongoose结果匿名函数返回父函数
- 函数返回错误'令牌{'
- Jquery函数返回订单问题
- Mocha/Chai测试链接到函数返回断言错误
- 从异步函数返回值
- 函数返回后更新变量
- 我如何才能继续'如果'语句来比较作为参数的多个函数返回值
- 将外部函数返回的id传递给内部函数