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

如何创建一个永远不会resolve的async函数?

创建永远不resolve的async函数

我们可以通过两种简单方式实现和new Promise(() => {})完全相同效果的async函数:

方法一:直接返回永不resolve的Promise

async函数的返回值会被自动包装为Promise,但如果直接返回一个Promise对象,就会沿用该对象的状态。所以直接返回那个永不resolve的Promise即可:

async function neverResolve() {
  return new Promise(() => {});
}

方法二:await一个永不resolve的Promise

await会暂停async函数的执行,直到等待的Promise完成(resolve或reject)。如果等待的Promise永远不resolve,async函数就会一直处于暂停状态,其返回的Promise也永远不会被resolve:

async function neverResolve() {
  await new Promise(() => {});
}

这两种方式最终都会让neverResolve()返回一个始终处于pending状态、永远不会变为fulfilled或rejected的Promise,和你给出的原生Promise写法效果完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 18:35:27