You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在TypeScript异步函数执行完成后调用指定函数?

在TypeScript中异步函数执行完成后调用其他函数的简洁实现

当然可以在async函数执行完成后直接调用另一个函数,根据你提供的逻辑,完全不需要额外保存上一个动物对象,有几种更简洁的实现方式:

1. 若showNextAnimal是异步方法(返回Promise)

直接在async函数内部await异步操作完成后,调用计数方法:

const callNextAnimal = async () => {
  const animal = animalFinder.getNextAnimal();
  // 等待动物展示逻辑完成
  await playerSlideshow.showNextAnimal(animal);
  // 直接用当前获取的animal调用计数方法
  animalSlideshowInstance.addCounterFor(animal);
};

2. 若showNextAnimal是同步方法

如果没有异步操作,甚至可以去掉async,直接按顺序执行:

const callNextAnimal = () => {
  const animal = animalFinder.getNextAnimal();
  playerSlideshow.showNextAnimal(animal);
  animalSlideshowInstance.addCounterFor(animal);
};

如果必须保留async(比如后续会添加异步逻辑),同样可以直接顺序调用:

const callNextAnimal = async () => {
  const animal = animalFinder.getNextAnimal();
  playerSlideshow.showNextAnimal(animal);
  animalSlideshowInstance.addCounterFor(animal);
};

3. 外部调用时执行计数逻辑

如果需要在调用callNextAnimal的外部执行计数,只需让函数返回当前animal:

const callNextAnimal = async () => {
  const animal = animalFinder.getNextAnimal();
  await playerSlideshow.showNextAnimal(animal);
  return animal;
};

// 外部调用时处理计数
callNextAnimal().then(animal => {
  animalSlideshowInstance.addCounterFor(animal);
});

以上方式都不需要额外维护prevAnimal状态,直接利用当前获取的animal对象完成计数,逻辑更简洁直观。

内容的提问来源于stack exchange,提问作者lost9123193

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 04:01:27