如果回调不是一个选项,如何处理异步javascript中的返回?

时间:2015-10-08 15:04:23

标签: javascript node.js iojs

当然,有许多异步问题和答案。但我的问题是关于我需要返回一些异步情况。

我在节点表达中有这个:

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

现在我的问题是这个,因为AJAX,someClass是异步的。 (在我的例子中,我使用setTimeout来表达我的观点)。

这样的事情:

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

module.
    exports = someClass;

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

1 个答案:

答案 0 :(得分:1)

我认为你需要调整你的想法... 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
  // }
});