惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

N
Netflix TechBlog - Medium
G
Google Developers Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
T
The Blog of Author Tim Ferriss
Microsoft Azure Blog
Microsoft Azure Blog
GbyAI
GbyAI
L
LangChain Blog
云风的 BLOG
云风的 BLOG
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
aimingoo的专栏
aimingoo的专栏
P
Proofpoint News Feed
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
小众软件
小众软件
WordPress大学
WordPress大学
A
About on SuperTechFans
大猫的无限游戏
大猫的无限游戏
C
Check Point Blog
月光博客
月光博客
Stack Overflow Blog
Stack Overflow Blog
美团技术团队
Jina AI
Jina AI
T
Tailwind CSS Blog
Google DeepMind News
Google DeepMind News
D
Docker

Next.js

vercel 公布 React Best Practices skills 求助在本地环境 nextjs 开发, localstorage 值被清除了问题 nextjs 有更优雅的自部署方案么? 用 Next.js 写了个站,首页加载太慢了!始终找不到原因 使用 Bun 创建项目时卡住 Security Advisory: CVE-2025-66478 Next.js 高危漏洞,建议大家马上升级到最新版,影响 15~ 16 所有版本 宝塔面板如何部署 next.js 项目 nextjs16 的 cache component 有点打碎我对 node 服务小而美的印象 next.js 对于大量页面的性能真的很差吗,比如打包很慢? 分享 Next.js 15.2 之后新版本的一个坑,可能会影响你的 SEO 收录 为啥 nextjs 编译这么慢,除了加物理内存,有啥好的优化建议? Next.js 中用什么来管理全局状态,类似 Vuex/Pinia ? Next.js 怎样获取当前页面的加载进度? 发现很多人不了解 Next.js Next.js 真的是越来越难用了,什么狗屁 use client,不如 Astro 一根,有什么话跟我的岛屿说去吧 学习 Next.js 需要先学习什么? nextjs 全栈项目可以打包成 Electron 吗 本地开发 Next.js 启动项目后卡顿的不行,有什么优化的空间吗(M1 8G) 一个奇怪的想法: nextjs 做前端+ssr, golang 作为后端,有没有搞头 Next.js 零日漏洞 CVE-2025-29927 一个请求头直接绕过中间件 发现 Next.js 的一个很愚蠢的 feature。 drizzle 中 many-to-many 的表怎么插入更优雅 可以通过简单的配置将主页设置为 home.tsx 吗? 每次导航会有一个 _rsc 参数的请求怎么能阻止 一个 Next.js ISR 失效的可能原因 Next.js 的实际开发体验真是一言难尽 小白求教: next.js 项目部署 vercel 环境变量不生效 v0.dev 开发的 Next.js 项目,下载代码到本地,怎么跑起来? an-desgin 怎么优化编译速度? Next.js 简直是屎啊
NextJS 可以在 route handler 中使用 setTimeOut 吗
Cyron · 2024-04-26 · via Next.js

最近在用 NextJS 写 API 时,想要实现一个场景:用户操作成功后,服务器在 2s 后执行一个逻辑。

下面用 kv 做个示例:

import { kv } from "@vercel/kv";

export async function GET() {
  let page1 = await kv.get("page:1");

  setTimeout(() => {
    kv.incr("page-visit:1");
  }, 2000);

  return Response.json({ data: page1 });
}

export const runtime = "edge"; // 尝试过 nodejs 效果一样
export const fetchCache = "force-no-store";

其中 incr 在本地可以正常执行,但在 Vercel 上部署时会发生:

  • timeout=10ms 时,可以正常执行 incr
  • timeout=2000ms 时,本次 API 调用不会执行 incr ,但会在下次调用时执行上一次的 incr

我的猜测是:本地 node 是守护进程,所以计时器不会被卸载掉,incr 正常执行;而 Vercel 上是 Serverless Function ,10ms 内 CPU 分配还在就会执行 incr ,2000ms 时 CPU 已经不分配了就不会执行 incr

我只是想薅 Vercel 的羊毛,请教大家如何才能做到延迟调用