Конечно, есть много асинхронных вопросов и ответов. Но мой вопрос касается асинхронной ситуации, в которой мне нужно что-то вернуть.Как работать с возвратами в async javascript, когда обратные вызовы не являются опцией?
У меня есть это в узле экспресс:
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
, как я могу это сделать?
Откиньте голову от стены, потому что без обратных вызовов асинхронный код не будет работать очень хорошо (прочитайте как «вообще»). –
Вы не можете этого сделать. – SLaks
Я предполагаю, что вы видели [этот вопрос] (http://stackoverflow.com/questions/14220321/how-to-return-the-response-from-an-asynchronous-call). Ответ по-прежнему остается таким же - вам все равно придется настроить код для использования обратного вызова. Возможно, ваш конструктор возвращает функцию, которая принимает обратный вызов в качестве аргумента, и именно эта функция вызывает 'setTimeout'. –