示例代码
javascript
example.ts
Apply
// 定义一个返回 Promise<void> 的函数
function asyncOperation(): Promise<void> {
return new Promise((resolve) => {
// 使用 setTimeout 模拟一个异步操作
setTimeout(() => {
console.log('异步操作完成');
// 当异步操作完成时,调用 resolve 来解决 Promise
resolve();
}, 2000);
});
}
// 调用这个函数
async function main() {
console.log('开始异步操作');
await asyncOperation();
console.log('异步操作已结束');
}
// 启动主函数
main();
代码解释
1. 函数定义
javascript
typescript
Apply
function asyncOperation(): Promise<void> {
return new Promise((resolve) => {
// ...
});
}
asyncOperation
函数的返回类型为Promise<void>
。这表明该函数会返回一个Promise
对象,并且当这个Promise
被解决时,不会有任何返回值(void
表示无返回值)。new Promise((resolve) => { ... })
用于创建一个新的Promise
对象。resolve
是一个函数,当异步操作成功完成时,调用resolve
来解决这个Promise
。
2. 模拟异步操作
scss
typescript
Apply
setTimeout(() => {
console.log('异步操作完成');
resolve();
}, 2000);
setTimeout
函数用于模拟一个异步操作,这里设置了 2000 毫秒(即 2 秒)的延迟。- 当 2 秒时间到达后,会执行回调函数,打印出
异步操作完成
,然后调用resolve()
来解决Promise
。
3. 调用异步函数
javascript
typescript
Apply
async function main() {
console.log('开始异步操作');
await asyncOperation();
console.log('异步操作已结束');
}
main
函数是一个异步函数(使用async
关键字定义),这允许我们在函数内部使用await
关键字。await asyncOperation()
会暂停main
函数的执行,直到asyncOperation
函数返回的Promise
被解决。- 当
asyncOperation
的Promise
被解决后,main
函数会继续执行,打印出异步操作已结束
。
总结
() => Promise<void>
类型的函数通常用于表示执行异步操作,但不返回具体结果的情况。在实际应用中,这类函数常用于处理文件读写、网络请求等异步任务,而不需要返回特定的数据。