【发布时间】:2019-11-07 17:36:15
【问题描述】:
这是我正在运行的 index.ts 脚本(基于我在 reddit 上找到的内容):
const path = require("path");
const sql = require("mssql");
const config = require(path.resolve("./config.json"));
let db1;
const connect = () => {
return new Promise((resolve, reject) => {
db1 = new sql.ConnectionPool(config.db, err => {
if (err) {
console.error("Connection failed.", err);
reject(err);
} else {
console.log("Database pool #1 connected.");
resolve();
}
});
});
};
const selectProjects = async (name) => {
const query = `
select * from [Time].ProjectData where [Name] like concat('%', concat(@name, '%'))`;
const request = new sql.Request(db1);
const result = await request
.input("name", name)
.query(query);
return result.recordset;
};
module.exports = {
connect,
selectProjects
};
connect().then(function() {
console.log(selectProjects('General'));
}).catch(function(err) {
console.log(err);
});
当我使用node index 运行脚本时(当然是在编译之后),我在控制台中得到了这个:
Database pool #1 connected.
Promise { <pending> }
然后脚本挂起。
【问题讨论】:
-
需要注意的是,这不是 typescript Promises 的一个特性,typescript 不会改变 Promise 也不会改变 javascript 的任何底层功能。
标签: javascript typescript promise