【发布时间】:2021-09-17 07:27:19
【问题描述】:
我是 async 函数的新手,我想链接一些函数,但我不知道为什么我不能返回最后一个调用
var container = { Login: '', sign_up_text: '', forget_password: '', login_button: '' }
var lang = 'de-DE'
var langID = 1
async function getVars (key, lang){
return db.localization.findOne({
where: {
key: key,
lang: lang
}
})
}
async function getLangID (lang){
return db.localGroups.findOne({ where: {
i10s: lang
},
attributes: ['id']
})
}
async function getLocalvars (container, lang){
var newcontainer = container
for (let key in container) {
console.log(lang)
await getVars(key, lang)
.then(data => {
newcontainer[data.key] = data.value;
})
}
return newcontainer;
}
async function desprate() {
getLangID(lang)
.then(langdata => {
getLocalvars(container, langdata.id)
.then(data => {
console.log(data);
return data;
})
})
}
console.log(desprate());
日志中甚至没有出现承诺;(
谢谢!
【问题讨论】:
-
你的
desprate和你的外部then都不返回任何东西。 -
你能告诉我更多我想我错过了一些“数据”(console.log(data))里面有正确的东西还是你的意思是我需要返回第二个然后返回函数本身?
-
为什么在
async function desprate中使用.then()而不是await? -
说实话我不知道,但这是我的第一个例子
标签: javascript node.js asynchronous