NodeJS Promise返回[对象未定义]

弗雷斯维克

我有个问题。我正在进行数据库调用以从数据库中的订单收集ID,然后我想使用Promise返回该订单的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....出了什么问题,我该如何解决?

dgiugg

toString(1134881)"[object Undefined]"

公正resolve(orderIdSelected);resolve(orderIdSelected.toString());

这里更多细节toString

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章