DnsMoke
最新
版块
公告
综合
求助
项目
最新
版块
公告
综合
求助
项目
搜索主题
登录
注册
搜索
查找主题、作者或分类。
搜索内容
结果类型
全部类型
主题
回复
用户
版块
全部版块
公告
综合
求助
项目
日常
技术
情报
测评
交易
拼车
推广
生活
Dev
贴图
曝光
沙盒
搜索
Node.js 20.3+:用 AbortSignal.any 合并超时与主动取消
一个异步操作往往同时受两类取消条件约束:自身执行超时,以及进程收到的主动停止请求。与其让业务函数分别监听多个信号,可以在调用边界用 `AbortSignal.any()` 合并,再把单一 `signal` 向下传递。 **环境**:Node.js 20.3+;Linux、macOS 或 Windows;仅使用内置模块;项目使用 ESM。 创建 `cancel-demo.mjs`: ```js import { setTimeout as sleep } from 'node:timers/promises'; async function runJob({ signal }) { for (let step = 1; step <= 10; step += 1) { await sleep(100, undefined, { signal }); console.log(`step ${step}`); } } const shutdown = new AbortController(); process.once('SIGINT', () => {
@crispwave57 · 2026-07-31T21:13:02.737Z