2017-08-05 79 views
1
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(); 
    } 
} 
); 

如何調用'connect'同步並繼續代碼的順序流。 由於代碼的異步執行,我的代碼中存在巨大的鏈接。 什麼是實現節點js中代碼順序執行的最佳方式。 我找到了一些圖書館https://www.npmjs.com/package/sync,但不認爲用於生產目的。如何調用節點j中的多個API同步

+1

您無法繼續正常流程。相反,您必須在回調函數內部或您從那裏調用的函數中繼續流。這就是nade.js中的異步編程。 – jfriend00

回答

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(); 
}) 
+0

沒有發現任何其他良好的模式,然後這。所以考慮到這一點,謝謝! –

+0

它進入鏈接,我如何刪除鏈? –

+0

如果您想要按順序發生,您將始終必須鏈接承諾或將其包裝在回調中 – marvel308