Node.js async to sync

后端 未结 5 1011
走了就别回头了
走了就别回头了 2020-12-13 19:44

How can I make this work

var asyncToSync = syncFunc();

function syncFunc() {
    var sync = true;
    var data = null;
    query(params, function(result){
          


        
5条回答
  •  执笔经年
    2020-12-13 20:03

    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;
    }
    

提交回复
热议问题