最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

为什么数组在响应中总是为空?

IT培训 admin 10浏览 0评论

为什么数组在响应中总是为空?

我正在端点上调用以下方法

exports.allConversations = async (req, res) => {
    // The recipient of the call, a phone number or a client
    console.log(req.body);
    let phoneNumber = req.body.phoneNumber;
    let messageSent, messageReceived;
    try {
        let messageSentPromise = client.messages
            .list({
                from: phoneNumber,
                limit: 20
            });
        let messageReceivedPromise = client.messages
            .list({
                to: phoneNumber,
                limit: 20
            });
        [messageSent, messageReceived] = await Promise.all([messageSentPromise, messageReceivedPromise]);

        let conversations = [];
        for (let i = 0; i < messageSent.length; i++) {
            let message = messageSent[i];
            if (conversations.includes(message.to))
                conversations[message.to].push(message);
            else {
                console.log([].push(message));
                conversations[message.to] = [message];
            }
        }
        console.log(conversations);
        return res.status(200).send({
            conversations: conversations
        });
    }
    catch (error) {
        console.log(error);
        return res.status(200).json({
            success: false
        });
    }
}

console.log(conversations);在响应中,我始终会收到一个空数组,但以下代码上方的console.log

return res.status(200).send({
                conversations: conversations
            });

在控制台上打印阵列。

回答如下:

我认为问题可能是由于数组索引不是实际的正整数。可能导致异常行为,如下面的代码片段所示:

let result = [];
result["test"]="test";
console.log(result); // depending on the implementation can still log `[test: "test"]` works in firefox for instance
console.log(JSON.stringify(result)); // will always log `[]`

仅确保您的索引实际上是有效的数组索引或使用对象,就像下面的代码中所示

    let conversations = {};
    for (let i = 0; i < messageSent.length; i++) {
        let message = messageSent[i];
        if (conversations[message.to]) conversations[message.to].push(message);
        else conversations[message.to] = [message];
    }
    console.log(conversations);
    return res.status(200).json({conversations});

为什么数组在响应中总是为空?

我正在端点上调用以下方法

exports.allConversations = async (req, res) => {
    // The recipient of the call, a phone number or a client
    console.log(req.body);
    let phoneNumber = req.body.phoneNumber;
    let messageSent, messageReceived;
    try {
        let messageSentPromise = client.messages
            .list({
                from: phoneNumber,
                limit: 20
            });
        let messageReceivedPromise = client.messages
            .list({
                to: phoneNumber,
                limit: 20
            });
        [messageSent, messageReceived] = await Promise.all([messageSentPromise, messageReceivedPromise]);

        let conversations = [];
        for (let i = 0; i < messageSent.length; i++) {
            let message = messageSent[i];
            if (conversations.includes(message.to))
                conversations[message.to].push(message);
            else {
                console.log([].push(message));
                conversations[message.to] = [message];
            }
        }
        console.log(conversations);
        return res.status(200).send({
            conversations: conversations
        });
    }
    catch (error) {
        console.log(error);
        return res.status(200).json({
            success: false
        });
    }
}

console.log(conversations);在响应中,我始终会收到一个空数组,但以下代码上方的console.log

return res.status(200).send({
                conversations: conversations
            });

在控制台上打印阵列。

回答如下:

我认为问题可能是由于数组索引不是实际的正整数。可能导致异常行为,如下面的代码片段所示:

let result = [];
result["test"]="test";
console.log(result); // depending on the implementation can still log `[test: "test"]` works in firefox for instance
console.log(JSON.stringify(result)); // will always log `[]`

仅确保您的索引实际上是有效的数组索引或使用对象,就像下面的代码中所示

    let conversations = {};
    for (let i = 0; i < messageSent.length; i++) {
        let message = messageSent[i];
        if (conversations[message.to]) conversations[message.to].push(message);
        else conversations[message.to] = [message];
    }
    console.log(conversations);
    return res.status(200).json({conversations});
发布评论

评论列表 (0)

  1. 暂无评论