javascript - 从嵌套的 .then 函数中获取数据
问题描述
长话短说。我正在尝试学习javascript。我现在已经连续搜索了大约 4 个小时。而且我找不到当前问题的答案,所以我假设我看错了。
我正在尝试创建一个 slackbot。机器人已连接,并且可以查找消息,以便该部分正常工作。
我已经(试图)创建(编辑)一个函数,该函数根据我设置的名称获取每条新消息的用户 ID。在我看来,这个函数返回用户 ID,我可以稍后在代码中检查用户 ID 是否在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);
解决方案
我不确定,但根据我的经验,如果你返回,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));
推荐阅读
- gremlin - 如何从 tinkerpop 中的重复步骤访问存储的变量
- python - 如何在 Python 中访问嵌套字典中的值
- ms-access - MS Access:在多列上使用 Not Like 现在正在工作
- c# - 从 .net 类库访问 Oracle 数据库时出错
- oracle11g - Talend Oracle 更新需要更多时间
- android - 如何将 Android 渐变渲染与 SVG BoundingBox 单元相匹配
- arrays - UDF 数组导致 #Value
- postman - 邮递员 - 无法在集合级预请求脚本中运行 pm.sendRequest()
- sql - 你能防止在 pgsql 的后触发器中插入吗?
- excel - Excel VBA:Google 地图 API - 一个邮政编码与许多邮政编码相比