如何在打印件中实现休眠功能? [英] How to implement sleep function in TypeScript?
本文介绍了如何在打印件中实现休眠功能?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在使用TypeScrip开发一个角度为2的网站,我想知道是否有办法实现thread.sleep(ms)
功能。
我的用例是在几秒钟后提交表单后重定向用户,这在JavaScript中非常简单,但我不确定如何在TypeScrip中做到这一点。
推荐答案
您必须等待带有async
/await
的TypeScrip2.0才能获得ES5支持,因为它现在仅支持TS到ES6编译。
您可以使用async
:
function delay(ms: number) {
return new Promise( resolve => setTimeout(resolve, ms) );
}
并称之为
await delay(1000);
顺便提一下,您可以直接等待Promise
:
await new Promise(f => setTimeout(f, 1000));
请注意,您只能在async
函数内使用await
。
如果不能(假设您正在构建NodeJS应用程序),只需将您的代码放在匿名async
函数中。下面是一个例子:
(async () => {
// Do something before delay
console.log('before delay')
await delay(1000);
// Do something after
console.log('after delay')
})();
TS应用示例:https://github.com/v-andrew/ts-template
在旧JS中,您必须使用
setTimeout(YourFunctionName, Milliseconds);
或
setTimeout( () => { /*Your Code*/ }, Milliseconds );
但是,由于每个主要浏览器都支持async
/await
,它就没那么有用了。
更新: TypeScrip 2.1与
async/await
一起出现。
请不要忘记,当您编译到ES5时,您需要Promise
实现,而Promise本身并不可用。
PS
如果要在原始文件之外使用它,则必须export the function。
这篇关于如何在打印件中实现休眠功能?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文