2015-12-11 5 views
-1

Как вы видите выше, когда событие pause триггеров Я хочу сделать кучу операций асинхронным способом. Но если мне это нравится, я думаю, что обратный вызов addon никогда не вернется.Асинхронные операции внутри обратного вызова

//(...) 
client.on('stream', function(stream, meta) { 
    //(....) 
    stream.on('pause', function() { 
     addon.calculate_results_async(stream, client.id, function(results, stream) { 
      stream.write(results); //send the results 
     }); 
    }); 
}); 

Во-первых, я прав, о боксерах аддона? И во-вторых, если я прав, как я могу calculate_results_async в этом контексте?

+1

испытанными Вы, чтобы увидеть, если вы правы насчет поведения? Это ошибка или необычные результаты? – TbWill4321

+0

@ TbWill4321 Я еще не тестировал. Я пытаюсь предсказать поведение этой реализации перед изменением того, что я сделал. – carduh

ответ

2

Похоже, что ошибка произошла при работе async.

Promise.all([your stuff]).then(function() { 
    // all loaded 
}, function() { 
    // one or more failed 
}); 

Или

Вы можете забыли разрешить обещание в вашем асинхронных

var promise = new Promise(function(resolve, reject) { 
    // do a thing, possibly async, then… 

    if (/* everything turned out fine */) { 
    resolve("Stuff worked!"); 
    } 
    else { 
    reject(Error("It broke")); 
    } 
}); 
Смежные вопросы