当回调不是一个选项时,如何处理异步 javascript 中的 returns?

How to deal with returns in async javascript when callbacks are not an option?

当然还有很多异步问答。但我的问题是关于异步情况,在这种情况下我需要 return 一些东西。

我在 node express 中有这个:

app.use('/', FalcorServer.dataSourceRoute(function(req, res) {
         return new someClass('SOMEHOST', req.query.paths);
}));

现在我的问题是,someClass 是异步的,因为 AJAX。 (在我的示例中,我使用 setTimeout 来说明我的观点)。

像这样:

class someClass {
    constructor(redisHost, pathString) {
        return setTimeout(function(){
            return someModel;
        }, 1500);
    }
}

module.
    exports = someClass;

但是我必须在我的 app.use 中处理这个 return,我该怎么做?

我觉得你需要调整思路了... app.use 进入回调里面。在不完全了解您问题的所有详细信息的情况下,我认为这可能会对您有所帮助。

function someClass(a, b, callback) {
  return setTimeout(function(){
    callback(a+b);
  }, 1500);
}

new someClass(1, 2, function(response) {
  console.log(response === 3);
  // your app.use statement which needs the response goes here.
  // In fact all your express (im guessing you are using express) stuff goes here
  // Example
  // app.use('/', FalcorServer.dataSourceRoute(function(req, res) {
  //    return response
  // }
});