我在javascript中创建了从数据库中获取数据的函数 我返回了结果,但没有给我预期的结果
功能
const getData = id => {
return new sql.ConnectionPool(config).connect().then(pool => {
return pool
.request()
.query(`select City,Address,Price from Temp where tempId='${id}'`)
.then(result => {
sql.close();
return result;
})
.catch(e => {
sql.close();
});
});
};
输出
Promise {
_bitField: 0,
_fulfillmentHandler0: undefined,
_rejectionHandler0: undefined,
_promise0: undefined,
_receiver0: undefined
}
预期产量
城市,地址,价格
答案 0 :(得分:1)
由于您正在使用 promise ,因此返回结果的方法是使用then
对其进行解析。您也可以使用catch
处理错误。就您而言,它看起来像这样
// Your function that returns a promise
const getData = id => {
return new sql.ConnectionPool(config).connect().then(pool => {
return pool
.request()
.query(`select City,Address,Price from Temp where tempId='${id}'`)
.then(result => {
sql.close();
return result;
})
.catch(e => {
sql.close();
});
});
};
// How you actually get the result
getData('yourIdGoesHere')
.then(data => {
// Your data is here
console.log(data);
}).catch(err => console.error(err));
答案 1 :(得分:-1)
您可以使用异步,等待以简化承诺。
const getData = async (id) => {
try {
const pool = await new sql.ConnectionPool(config).connect();
const result = pool
.request()
.query(`select City,Address,Price from Temp where tempId='${id}'`)
sql.close();
return result;
} catch (exception) {
sql.close();
return;
}
};