Node js包装异步函数

时间:2013-11-11 13:32:35

标签: javascript node.js asynchronous

我正在实现一个具有以下功能的API:

get(url)

返回响应对象,即没有回调。我发现的Http Modules实现了带回调的节点式异步函数。我试图等待async函数以几种方式返回,使用光纤等。光纤解决了光纤内的问题,但不能在我的情况下使用,因为我需要在任何光纤之外返回值。

可以包装整个执行(包括使用API​​的代码),但我真的不希望这样。是否有任何模块能够满足我的需求?

1 个答案:

答案 0 :(得分:0)

如果我理解了这个问题,那么你试图将异步代码与同步代码混合起来,如果没有承诺,你实现的目标就不可能实现。只要将异步代码与同步代码混合在一起,就会使整个代码异步,或者在返回同步代码的结果之前,同步代码会返回一个值。

您总是可以尝试对函数执行超时,以使其返回,直到给定的时间段到期,这希望异步代码在同步代码返回之前执行并具有返回值。但是,这是非常低效的,并没有消除问题,因为在异步部分完成之前你仍然可以最终返回。

我也同意robertklep的评论,即node.js真的不适合你的用例,你可能会更好地看看另一个工具。