javascript - 如何在延迟后立即执行 setTimeout 函数?
问题描述
我想在延迟后执行 setTimeout,而不是在所有其他函数都执行后等待从消息队列中调用它。请参考以下代码:
let test = function(){ console.log('test') }
setTimeout(() => console.log('hi'), 2000)
test();
test();
test();
.
.
.
.
this code takes more than 2 seconds to execute;
如何在 2 秒后而不是最后获得 setTimeout?
解决方案
你可能不需要setTimeout
. 取而代之的是返回一个promise
fromtest
函数并在其中执行其余的事情,这些事情then
只会test
在解决一次
let test = function() {
return new Promise(function(resolve, reject) {
console.log('test');
resolve('test executed')
})
}
test().then(function(data) {
console.log(data)
});
推荐阅读
- php - 将登录用户从特定页面重定向到 Woocommerce 我的帐户页面
- javascript - Neo4j/React:解析 Neo4j 结果以用于 React
- mysql - MySQL SubString 提取精确部分
- bootstrap-4 - 引导网格 sm 或 xs 不工作
- python - 为什么这个for循环提前结束?蟒蛇 3.6
- python - 从“A”列中查找当前日期并在“B”列中更新当前时间(Excel 2010)
- r - 将分类变量传播到新的非布尔列中
- bigcommerce - BigCommerce 更改订单历史视图
- spring-boot - spring boot2.x 和 ehcache3.5 基于注解报错
- entity-framework - DbContext,连接 Web 服务而不是数据库