【问题标题】:How to call multiple API synchronise in Node.jsNode.js如何调用多个API同步
【发布时间】:2017-08-05 05:02:22
【问题描述】:

下面是我的代码,

var Connection = require('tedious').Connection;
var Request = require('tedious').Request;

var config = {
    userName: 'XXXX',
    password: 'XXXX',
    server: 'XXXX',
    options: {
        database: 'XXXX',
        encrypt: true
    }
}

var connection = new Connection(config);

connection.on('connect', function (err) {
    if (err) {
        console.log(err);
    }
    else {
        // // queryDatabase();
    }
}
);

由于代码的异步执行,我的代码中有大量链接。我找到了some libraries,但不要考虑将它们用于生产目的。

如何调用'connect'同步并继续代码的顺序流?在 Node.js 中实现代码顺序执行的最佳方法是什么?

【问题讨论】:

  • 您无法继续正常流程。相反,您必须在回调函数或从那里调用的函数中继续流程。这就是 nade.js 中异步编程的工作原理。
  • node.js 即*

标签: javascript node.js azure azure-functions


【解决方案1】:

这样的东西会起作用吗?

var config = {
    userName: 'XXXX',
    password: 'XXXX',
    server: 'XXXX',
    options: {
        database: 'XXXX',
        encrypt: true
    }
}

var connection = new Connection(config);

function isConnected(){
    return new Promise(function(resolve, reject){
            connection.on('connect', function (err) {
            if (err) {
                reject(err);
            }
            else {
                resolve(true);
            }
        }
    );
    })
}

isConnected().then(function(){
    // // queryDatabase();
})

【讨论】:

  • 没有找到任何其他好的模式然后这个。所以考虑到这一点,谢谢!
  • 它进入链接,我怎样才能删除链?
  • 如果您希望事情按顺序发生,您将始终必须链接承诺或将它们包装在回调中
  • 你可以尝试 async await 它使代码更具可读性,但异步函数也会返回一个 Promise
猜你喜欢
  • 2017-12-24
  • 2021-02-02
  • 2013-10-16
  • 1970-01-01
  • 2013-08-03
  • 2016-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多