一尘不染

Node.js异步同步

node.js

我该如何做这项工作

var asyncToSync = syncFunc();

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

我试图从异步之一获取同步功能,我需要它来使用FreeTds异步查询作为同步之一


阅读 230

收藏
2020-07-07

共1个答案

一尘不染

使用deasync-用C
++编写的模块,它将Node.js事件循环暴露给JavaScript。该模块还公开了一个sleep函数,该函数阻止后续代码,但不阻止整个线程,也不引起繁忙的等待。您可以将sleep函数放入while循环中:

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