相关疑难解决方法(0)

如何结束异步调用以同步运行?

目前,这是我使用node-mysql执行查询的方式

client.query( sql, function( error, result ) {
  console.dir( result );
});
Run Code Online (Sandbox Code Playgroud)

我想同步这样做,就像这样

var result = client.querySync( sql );
console.dir( result );
Run Code Online (Sandbox Code Playgroud)

我理解为什么在节点中阻塞是坏的,但我(几乎)长大到足以知道什么时候可以,什么时候没有.我只打算在任何事件循环之外的初始化阶段进行同步调用.

有人知道我怎么能做到这一点吗?

编辑...

有点......

client.querySync = function( sql )
{
    var called = false;
    var result;

    while ( typeof result == 'undefined' ) {
        if ( ! called ) {
            called = true;
            this.query( sql, function( error, _result ) {
                result = { error: error, result: _result };
            });
        };
    }

    return result;
};
Run Code Online (Sandbox Code Playgroud)

javascript mysql node.js

4
推荐指数
1
解决办法
5023
查看次数

标签 统计

javascript ×1

mysql ×1

node.js ×1