Nodejsasynchronous任务和匿名函数

以下示例是当前的代码:

new SomeStrategy(function(one, two, done) { // do some stuff return done(pram); }) 

我想在这个匿名函数里面做一些asynchronous的任务,比如发起请求,并把结果作为done函数的参数,最后返回

返回完成(参数);

怎么可能呢?

您不能从asynchronous函数返回值。

当它执行完成时,调用它的函数将会完成,所以不会有任何地方返回值。

您必须在传递给它的callback函数内部执行您想要处理的asynchronous函数的结果。

只需从内部匿名函数调用done ,就像这样

 new SomeStrategy(function(one, two, done) { callAsyncFunction(param1, function(param1) { done(pram); }); })