Асихронное выполнение функции

253
02 июля 2017, 15:58

На сайте после создания заказа клиент переходит на страницу, где ему откликаются боты через рандомные промежутки времени(чтобы выполнить его заказ) . Боты пушатся в socket через php, nodejs принимает и рендерит на странице.

Боты должны переодично пушить сообщения в чат, делать это асинхронно, поскольку боты из сервера могут приходить в рандомном промежутке времени.

Код на nodejs

managementNsp.on('connection', function(socket){
socket.on('addBid', function (data) {
     if (data.writer.isBot) {
        function asyncPushToChat() {
             var messagesArray = ["Hello", "Test message"];
             messagesArray.forEach(function(item) {
                setTimeout(function(){
                    push(item);
                }, randomSeconds);
            });
        }
    }
});

Как функцию asyncPushToChat сделать асинхронной??

если так переписать на промисы, это верно?

managementNsp.on('connection', function(socket){
socket.on('addBid', function (data) {
    if (data.writer.isBot) {
        function asyncPushMessageToChat()
        {
            return new Promise(function(resolve, reject)
            {
                connection.query("SELECT text FROM bot_message", function (err, messagesArray) {
                    if (err) {
                        reject(err);
                    }
                    messagesArray.forEach(function(item) {
                        setTimeout(function(){
                            return resolve(item);
                        }, randomSeconds);
                    });
                });
            });
        }
        asyncPushMessageToChat()
            .then(function(res)
            {
                //append to html
            })
            .catch(function(err){
                console.log(err);
            });
    }
});
READ ALSO
Рекурсивные зависимости

Рекурсивные зависимости

Вопрос: как можно решить данную зависимость чтобы в результате выполнения было только 2 объекта без промежуточных или по другому чтобы в стеке...

211
вывод кириллицы в php через cron

вывод кириллицы в php через cron

Есть php файл, в нем прописано:

182
Шаблоны в Yii2 - как пользоваться?

Шаблоны в Yii2 - как пользоваться?

Сразу прошу прощения, если глупый вопрос, но я так и не понял, есть ли такое в yii2, и если есть - то как им пользоватьсяЧто я имею ввиду: есть такой...

387