Nodejs 如果库没有让程序延迟 x 毫秒的功能,推荐一个小开源服务 flash

发布于 1周前 作者 itying888 来自 nodejs/Nestjs

FLASH

A test service to mock slow server responses

https://flash.siwalik.in

如果你用 NetSuite 的 suitescript 这样的库去开发服务端的代码(比如 scheduled, mapreduce, userevent ),很不幸这个库是没有办法让你实现延迟 x 毫秒再进行某功能的,而用 for 循环去请求当前时间作比较的方法可能会导致服务器报错,这时候推荐一下这个开源项目,可以简单用以下语法通过 http 返回的延迟实现让程序延迟。比较推荐这个开源项目 host 在自己的服务上,比如 aws lambda 之类的,因为这个测试链接服务不知道什么时候可能就停了。

// GET() mock response after specific delay
> $.get('https://flash.siwalik.in/delay/3000', data=> {console.log(data)});

// api response > {status: 200, delay: “3000 ms”, message: “Mock response from Flash”}

很小众很小众的需求,但是你如果搜索到了这里,应该得到了这个问题截至目前最优的解决方案。如果哪天 suitescript 加上了延迟的 api ,请回复我(如果我还上这个论坛)


Nodejs 如果库没有让程序延迟 x 毫秒的功能,推荐一个小开源服务 flash

1 回复

针对您提到的Node.js中需要实现程序延迟功能,而库中没有直接提供这一功能的情况,我推荐您使用Node.js内置的setTimeout函数或者创建一个基于Promise的延迟函数来实现。虽然您提到了flash这个开源服务,但flash通常用于暂存提示信息,并不直接提供延迟功能。

以下是使用setTimeout函数和Promise实现延迟的示例代码:

  1. 使用setTimeout函数
console.log('开始');
setTimeout(() => {
  console.log('延迟2秒后执行');
}, 2000);
console.log('结束(立即执行)');
  1. 使用Promise和async/await
function delay(ms) {
  return new Promise(resolve => setTimeout(resolve, ms));
}

async function run() {
  console.log('开始');
  await delay(2000);
  console.log('延迟2秒后执行');
  console.log('结束');
}

run();

这两种方法都可以在Node.js中实现延迟功能,而无需依赖外部库。如果您需要在项目中频繁使用延迟功能,可以将基于Promise的延迟函数封装成一个工具模块,以便在需要时方便地调用。

回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!