我无法使我的代码按顺序工作。我需要先进行连接测试,最后解析函数,以便形成一个文本字符串,该字符串将在带有NPM包的tweet中发送。(这不是我的真正代码,它是一个简要示例)
我尝试过很多事情,我的大脑着火了
// Test DB conection
db.authenticate()
.then(() => {
const server = http.createServer(app)
server.listen(config.port, () => {
console.log(`http://localhost:${config.port}`)
})
reload(app)
})
.catch(err => {
console.log(`Error: ${err}`)
})
// Functions
resumen.man = (numRoom) => {
const registries = Registries.findOne({})
.then((registries) => {
return registries.name+' is good.'
})
}
resumen.man1 = (numRoom) => {
const registries = Registries.findOne({})
.then((registries) => {
return registries.name+' is bad.'
})
}
resumen.man2 = (numRoom) => {
const registries = Registries.findOne({})
.then((registries) => {
return registries.name+' is big.'
})
}
// Execute resumen.man(1) first and save text in $varStringMultiLine ?
// Execute resumen.man1(1) later and save text in the same $varStringMultiLine ?
// Execute resumen.man2(1) last and save text in the same $varStringMultiLine ?
sendTweet($varStringMultiLine)谢谢。
发布于 2019-09-18 23:46:34
正如@Barmar和@some所评论的,您可以使用.then或使用async / await来链接承诺。我推荐后者,因为.then-chaining会很快变得笨重。
这是对async / await:https://javascript.info/async-await的一个很好的解释
基本上,你可以用
await db.authenticate();在承诺被解决之前,停止代码而不执行下一行。但是,为了不冻结整个执行,这本身需要在承诺中异步完成。
https://stackoverflow.com/questions/58001326
复制相似问题