【发布时间】:2019-12-23 05:40:22
【问题描述】:
有人可以帮我为什么我下面的代码会为 out 变量返回 Promise 挂起值吗?
var out = dbConn.connect().then(function (){
var request = new sql.Request(dbConn);
request.input("terminalId", sql.VarChar, terminalID).query("SELECT terminalContextKey from device_context where terminalId = @terminalId").then(function (result, recordSet) {
dbConn.close();
finalterminalkey = result.recordset[0].terminalContextKey;
console.dir(JSON.stringify(finalterminalkey));
Promise.resolve(recordSet);
return JSON.stringify(finalterminalkey);
}).catch(function (err) {
console.log(err);
dbConn.close();
});
}).catch(function (err) {
console.log(err);
});
console.dir(out);
return out;
【问题讨论】:
-
这对我们来说太宽泛了。 “为什么我的代码做 X”问题对于 Stack Overflow 来说是题外话,没有研究。
-
@zix 通常我不会在代码格式类型之间进行更改,但我想这是因为在这种情况下有 6 个字符的限制。
-
从
.then()中返回的任何内容都将产生一个新的承诺。将JSON.stringify(finalterminalkey)分配给全局范围内的变量。 -
Why is my asynchronous function returning Promise { <pending> } instead of a value? 的可能重复项(假设您没有问为什么它不是 promise-resolved)
-
我尝试分配给全局变量,但它返回了我分配的内容。假设 null 或 ""
标签: javascript node.js express