我正在使用 TypeScript 在 Angular 2 中开发一个网站,我想知道是否有办法实现 thread.sleep(ms)
功能。
我的用例是在几秒钟后提交表单后重定向用户,这在 JavaScript 中非常容易,但我不确定如何在 TypeScript 中执行此操作。
原文由 kha 发布,翻译遵循 CC BY-SA 4.0 许可协议
我正在使用 TypeScript 在 Angular 2 中开发一个网站,我想知道是否有办法实现 thread.sleep(ms)
功能。
我的用例是在几秒钟后提交表单后重定向用户,这在 JavaScript 中非常容易,但我不确定如何在 TypeScript 中执行此操作。
原文由 kha 发布,翻译遵循 CC BY-SA 4.0 许可协议
import { timer } from 'rxjs';
import { take } from 'rxjs/operators';
await timer(1000).pipe(take(1)).toPromise();
这对我来说效果更好
原文由 FabioStein 发布,翻译遵循 CC BY-SA 4.0 许可协议
您必须等待带有
async
/await
的 TypeScript 2.0 支持 ES5,因为它现在仅支持 TS 到 ES6 的编译。您可以使用
async
创建延迟功能:并称它为
顺便说一句,您可以直接在
Promise
上等待:请注意,您只能在
async
函数中使用await
。如果你不能( _假设你正在构建 nodejs 应用程序_),只需将你的代码放在匿名
async
函数中。这是一个例子:示例 TS 应用程序: https ://github.com/v-andrew/ts-template
在 OLD JS 中你必须使用
或者
但是,随着每个主要浏览器都支持
async
/await
它不太有用。只是不要忘记,当您编译到 ES5 时,您需要
Promise
实现,而 Promise 在本机不可用。如果要在原始文件之外使用该函数,则必须 导出该函数。