Node.js 如何在KoaJs/NodeJs中超时yield语句?

Node.js 如何在KoaJs/NodeJs中超时yield语句?,node.js,koa,Node.js,Koa,我有一个语句,它通过yield给出结果,但在某些情况下,它不知何故不起作用,我的yield一直在无限地等待,唯一的解决方案就是重新启动应用程序。我想知道是否有任何方法可以设置超时,同时通过KoaJs中的yield获得结果 var x = yield someFunction(par1) return (x) 我的问题是,在极少数情况下,someFunction不返回任何值,我陷入了地狱般的永恒等待中编写一个超时承诺生成器: yield new Promise(resolve => {

我有一个语句,它通过yield给出结果,但在某些情况下,它不知何故不起作用,我的yield一直在无限地等待,唯一的解决方案就是重新启动应用程序。我想知道是否有任何方法可以设置超时,同时通过KoaJs中的yield获得结果

var x = yield someFunction(par1)
return (x)

我的问题是,在极少数情况下,someFunction不返回任何值,我陷入了地狱般的永恒等待中

编写一个超时承诺生成器:

yield new Promise(resolve => {
  someFunction(par).then(resolve);
  setTimeout(resolve, 5000);
});

有一个模块:)这个模块增加了全局超时。如果您只想在某些地方使用此逻辑,请检查其实现:它在引擎盖下使用
co
Promise.race
。@YuryTarabanko不,该库不起作用。我猜这个库为http连接设置了超时,但并没有生成语句,所以它可以正常工作。如果你需要使用这个逻辑,除了KOA中间件,使用相同的方法:RACE 2承诺在一定时间后拒绝的一个,以及从生成生成器的膝关节炎中得到的代码:<代码> CO/<代码>