Еще один подход к возврату значения из асинхронной функции - передать объект, который сохранит результат от асинхронной функции.
Вот пример того же:
var async = require("async");
// This wires up result back to the caller
var result = {};
var asyncTasks = [];
asyncTasks.push(function(_callback){
// some asynchronous operation
$.ajax({
url: '...',
success: function(response) {
result.response = response;
_callback();
}
});
});
async.parallel(asyncTasks, function(){
// result is available after performing asynchronous operation
console.log(result)
console.log('Done');
});
Я использую объект result
для хранения значения во время асинхронной операции. Это позволяет получить результат даже после асинхронного задания.
Я использую этот подход много. Мне было бы интересно узнать, насколько хорошо этот подход работает, когда задействован результат обратно через последовательные модули.
Проблема заключается в том, что вы привязываетесь только к интерфейсу localhost, вы должны быть привязаны к 0.0.0.0
, если хотите, чтобы контейнер был доступен извне. Если вы измените:
if __name__ == '__main__':
app.run()
на
if __name__ == '__main__':
app.run(host='0.0.0.0')
Он должен работать.
Это не работает для меня.
app.run(host='0.0.0.0')
Вместо этого я использовал:
$> flask run --host=0.0.0.0
Я нашел интересную статью о том, как запустить Python Flask в докере. Должны помочь тем, кто новичок в Docker https://medium.com/@yoratyo/running-flask-on-docker-dc3941d39304