首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何按照顺序执行承诺?

如何按照顺序执行承诺?
EN

Stack Overflow用户
提问于 2019-09-18 22:08:00
回答 1查看 39关注 0票数 0

我无法使我的代码按顺序工作。我需要先进行连接测试,最后解析函数,以便形成一个文本字符串,该字符串将在带有NPM包的tweet中发送。(这不是我的真正代码,它是一个简要示例)

我尝试过很多事情,我的大脑着火了

代码语言:javascript
复制
// 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)

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-18 23:46:34

正如@Barmar和@some所评论的,您可以使用.then或使用async / await来链接承诺。我推荐后者,因为.then-chaining会很快变得笨重。

这是对async / awaithttps://javascript.info/async-await的一个很好的解释

基本上,你可以用

代码语言:javascript
复制
await db.authenticate();

在承诺被解决之前,停止代码而不执行下一行。但是,为了不冻结整个执行,这本身需要在承诺中异步完成。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58001326

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档