[英]Node.js MSSQL Return a Value
我有這個代碼
var sql = require('mssql');
....
function dbConnect(){
sql.connect(config).then(function() {
return true;
}).catch(function(err) {
return false;
});
我希望函數dbConnect返回一個值。 但是當我使用console.log(dbConnect());
調用它時console.log(dbConnect());
我有
未定義
有幫助嗎?
dbConnect()
函數沒有自身的return語句,因此不返回值,這是預期的。
假設您想要回調給調用者是否連接成功,您必須記住連接到數據庫的過程是異步的,因此必須使用回調(或者我承諾)來完成。
如果您將功能更改為以下內容:
function dbConnect(cb){
sql.connect(config).then(function() {
cb && cb(true);
}).catch(function(err) {
cb && cb(true);
});
然后你可以像這樣調用它:
dbConnect(function(result) {
if (result) console.log('yay! connected');
else console.log('ohnoz! connection failed!');
});
作為替代方案,您可以使用promise結構,但我相信Node編程風格更傾向於回調函數。 但是,無法使dbConnect函數直接返回連接的狀態,因為在函數完成時該值尚不可用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.