NodeJS Promise returns [Object Undefined]



我有一个问题。我正在做一个数据库调用收集Id从订单我有我的数据库,然后我想使用承诺返回该订单的Id,因为数据库调用是异步的。我做了以下承诺:

function getNextOrderId() {
return new Promise(function(resolve, reject) {
orderIdSelected = 0;
var sql = `
SELECT * 
FROM Orders 
WHERE userId=5
`;
conn.query(sql, function(err, rows, fields) {
if (err) throw err;
var length1 = Object.keys(rows).length;
LogToConsole("length1="+length1);   
i1 = 0
while (i1 < length1 && orderIdSelected == 0) {

var OrderId = rows[i1].Id;
LogToConsole("OrderId="+OrderId);
if (OrderId == 1134881) {
orderIdSelected = OrderId;
LogToConsole("orderIdSelected end="+orderIdSelected);
resolve(toString(orderIdSelected));
}

i1++;

}

});

});
}

然后我像下面这样调用承诺:

getNextOrderId().then(function(nextOrderId) {
LogToConsole(nextOrderId);

}).catch((err) => setImmediate(() => { throw err; }));

但是nextOrderId是[Object Undefined],它在promise函数返回之前有一个值。打印:LogToConsole("orderIdSelected end="+orderIdSelected);给出:orderIdSelected end=1134881....出了什么问题,我该如何解决?

toString(1134881)给出"[object Undefined]"

resolve(orderIdSelected);resolve(orderIdSelected.toString());

toString的更多细节在这里

相关内容

最新更新