Use deasync – a module written in C++ which exposes Node.js event loop to JavaScript. The module also exposes a sleep
function that blocks subsequent code but doesn’t block entire thread, nor incur busy wait. You can put the sleep
function in your while
loop:
var asyncToSync = syncFunc();
function syncFunc() {
var sync = true;
var data = null;
query(params, function(result){
data = result;
sync = false;
});
while(sync) {require('deasync').sleep(100);}
return data;
}