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

如何创建可正常调用的无操作async异步方法存根?

无操作async异步方法存根实现方案

以下是不同开发场景下的实现方式,均满足不抛异常、无未await警告、无实际执行操作的要求:

C# / .NET 场景

  • 无返回值的异步方法存根,直接返回Task.CompletedTask即可,比空async方法少了状态机开销,性能更优:
// 写法1:省略async修饰符,直接返回预创建的已完成Task
public Task EmptyAsyncStub()
{
    return Task.CompletedTask;
}

// 写法2:保留async修饰符,适合后续要补充实现的场景
public async Task EmptyAsyncStub()
{
    await Task.CompletedTask;
}
  • 带返回值的泛型异步方法存根,返回Task.FromResult包裹的默认值即可:
public Task<T> EmptyAsyncStub<T>()
{
    return Task.FromResult<T>(default);
}

JavaScript / TypeScript 场景

  • 直接返回已完成状态的Promise.resolve即可:
// 无返回值异步存根
function emptyAsyncStub() {
    return Promise.resolve();
}

// 带返回值异步存根
function emptyAsyncStub() {
    return Promise.resolve(null); // 可替换为任意需要的默认返回值
}

Python 场景

  • 直接定义空的async方法即可,本身就是合法的无操作异步存根:
async def empty_async_stub():
    pass

注意事项

上述返回的都是运行时自带的已完成异步对象,不会产生多余开销,调用方无论是否await都不会触发编译器警告,也不会抛出任何未实现异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 08:06:08