你必须等待 TypeScript 2.0async
/await
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));
请注意,您可以使用await
仅在内部async
功能。
如果你不能(假设您正在构建 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 https://github.com/v-andrew/ts-template
在旧 JS 中你必须使用
setTimeout(YourFunctionName, Milliseconds);
or
setTimeout( () => { /*Your Code*/ }, Milliseconds );
然而,每个主要浏览器都支持async
/await
它不太有用。
更新:
TypeScript 2.1 现已推出async/await
.
只是不要忘记你需要Promise
编译到 ES5 时的实现,其中 Promise 本身不可用。
PS
你必须导出函数 https://github.com/v-andrew/ts-template/blob/master/src/lib/common.ts如果您想在原始文件之外使用它。