如何在打印件中实现休眠功能? [英] How to implement sleep function in TypeScript?

查看:67
本文介绍了如何在打印件中实现休眠功能?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆