从嵌套的.then函数获取数据

时间:2018-12-31 15:23:07

标签: javascript node.js

长话短说。我正在尝试学习JavaScript。我现在已经连续搜索了大约4个小时。而且我找不到当前问题的答案,所以我假设我正在以错误的方式看待这个问题。

我正在尝试创建一个slackbot。该漫游器已连接,可以查找消息,以便该部分正常工作。

我(试图)创建了一个函数,该函数根据我设置的名称获取每个新消息的用户ID。在我看来,该函数返回用户ID,以后我可以检查代码是否userID在message.text中,如果有的话。

我假设它与.then函数有关。我什至可以从那个.then函数返回数据吗?或者您可以只在该函数中使用该数据。

我有几个返回函数,因为我正试图从您可能的地方返回它。

function getuserid(botname){
    
    var id = ''

    var getbotid = bot.getUsers();
    getbotid.then(function(value){ 
        for(var i=0;i<value.members.length;i++){
            if(value.members[i].name == botname){
                id = value.members[i].id
                console.log(id);//this logs what i want.
                return id
                
            }
        } return id 
        
    })
    return id 
}

var botid = getuserid('jokester');
console.log(botid);

1 个答案:

答案 0 :(得分:0)

我不确定,但是根据我的经验,如果您返回getbotid(),那么实际上您会返回一个诺言,您就可以使用它。

function getuserid(botname){

var id = ''

//************Here I return getbotid 
return bot.getUsers().then(function(value){ 
    for(var i=0;i<value.members.length;i++){
        if(value.members[i].name == botname){
            id = value.members[i].id
            console.log(id);//this logs what i want.
            return id

        }
    } return id 

})
return id 
}
//Now you can use it 
getuserid('jokester').then(id => console.log(botid));