当值明确定义时,函数返回undefined

时间:2019-05-31 21:07:12

标签: javascript node.js asynchronous

我正在使用Twitter API通过Node.JS发送直接消息,效果很好;但是,它需要一个不方便的用户ID。我创建了另一个名为getTwitterID的函数,以在给定用户screen name后返回用户ID。该函数与API配合良好,并且能够访问其用户ID,但是在返回时,它声称未定义。我肯定有一个简单的解决方法,但是我很沮丧。 这是错误,只是说我输入的ID未定义:


    { errors:
       [ { code: 214,
           message:
            'event.message_create.target.recipient_id: field is required' } ] }

为了方便阅读,我突出显示了相关代码。

第一个功能:

export async function messageTwitter(message, recipient){

   const id = await getTwitterID(recipient); //Getting ID value <br/>
   console.log(id) //prints undefined 

    client.post('direct_messages/events/new', {
        event: {
            type: "message_create",
            message_create: {
                target: {
                    recipient_id: id
                },
                message_data: {
                    text: message
                }
            }
        }
    }, (event, error)=>{
            console.log(event);
            console.log(error)
    })
}

第二功能:

export async function getTwitterID(rec) {
    client.get('users/show', {
        screen_name: rec
    }, (error, response) => {
        if (error) {
            console.log(error)
        }


    console.log(response.id_str) //prints the correct id <br/>
    return response.id_str //returning id for use in other function

    })
}

当在第二个函数中检索正确的ID时,我不确定该函数为什么在第一个函数中返回undefined

0 个答案:

没有答案