var express = require('express');
var app = express();
var server = require('http').createServer(app);
var io = require('socket.io')(server);
var fs = require('fs');
var https = require('https');
app.set('views', __dirname + '/views')
app.set('view engine', 'pug')
app.use(express.static(__dirname + '/public'))
server.listen(5000, function () {
console.log('Server listening at port %d', 5000);
});
const opts = {
key: fs.readFileSync('privateKey.key'),
cert: fs.readFileSync('certificate.crt')
}
var httpsServer = https.createServer(opts, app);
httpsServer.listen(5001, function(){
console.log("HTTPS on port " + 5001);
})
app.get('/', function (req, res) {
res.render('index');
})
io.attach(httpsServer);
io.attach(server);
io.on('connection', function(client) {
console.log('Client connected...');
client.on('click', function(data){
console.log(JSON.parse(data));
setTimeout(function() {
client.emit("ok", "data");
}, 3000);
})
});
if (window.location.protocol != "https:"){
var socket = io.connect('https://localhost:5001');
} else {
var socket = io.connect('http://localhost:5000');
}
output.publicPath: '/bundles/'
for (var i = 0; i < 10; i++) {
setTimeout('console.log('+ i +')', 1000);
}
// псевдо код
var yourArrayFromDB = [здесь массив исходных данных, например то, что вы до этого из бд запросили];
var promiseArray = yourArrayFromDB.map(
(elem) => new Rromise( function (resolve, reject) {
// функция которая обрабатывает что вам нужно асинхронно
request.get('your.url.com', fuction( err, res) {
if (err) reject(err);
resolve(res);
})
}
)
);
Promise.all(promiseArray)
.then((resArray) => { здесь делаете что хотите с массивом результатов асинхронных функций })
.catch(console.log);
Такое ощущение будто в .map асинхронная функция не дожидается своих await, а сразу возвращает промис.
const arr = await Promise.all([1, 2, 3, 4, 5].map(async (value) => 2 * await asyncThing(value)));
console.log(arr); // [2, 4, 6, 8, 10]
let res = await collection.findOne({username:userName},{projection:{id : 1, username : 1}});
const obj = Object.assign({}, ...arr.map((n, i) => ({ [n]: arr2[i] })));
// или
const obj = arr.reduce((acc, n, i) => ({ ...acc, [n]: arr2[i] }), {});
const combine = (keys, values) =>
keys.reduce((acc, n, i) => (acc[n] = values[i], acc), {});
const obj = combine(arr, arr2);