好的

我的问题是Javascript对象itemListpriceList-它们没有正确保留在.then()部分中。

这是我遇到的问题:

var stmt = `SELECT * FROM SRV${msg.guild.id}`;
var itemList = {};
var priceList = {};
var num = -1;
sql.each(stmt, function(err, row) {
    num++
    if(row.items!="ITEMS") { itemList[num] = row.items; }
    if(row.prices!="PRICES") { priceList[num] = row.prices; }
    console.log("---------\n" + JSON.stringify(itemList, null, 4) + "\n" + JSON.stringify(priceList, null, 4));
})
.then((itemList, priceList) => {
    console.log("----E----\n" + JSON.stringify(itemList, null, 4) + "\n" + JSON.stringify(priceList, null, 4) + "\n----E----");
    let cmd = require("./itemsPROCESS.js");
    cmd.run(transfer, msg, args, itemList, priceList);
});


这是它输出的重要信息:

javascript - 变量未保留-LMLPHP

我尝试使用字符串而不是Javascript对象,但是似乎也不喜欢它,并且输出相同。

5undefined部分应该类似于它上面的位,但事实并非如此。

可能与null部分有关吗?如果是这样,这是否意味着它不适用于true-false-undefined等?

最佳答案

删除参数itemListpriceList,您的代码就可以了。

您在itemList函数中引用的.then实际上是SQL promise解决的问题。

.then(() => {...});

10-06 15:39