繁体   English   中英

如何按顺序执行承诺?

How execute promises in order?

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我无法使我的代码按顺序工作。 我需要先进行连接测试,最后还要解析功能,以形成文本字符串,该字符串将与NPM软件包一起在推文中发送。 (这不是我的真实代码,它是一个摘要示例)

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

// 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)

谢谢

1 个回复

正如评论说@Barmar和@some,你可以链与承诺.then ,或使用async / await 我会推荐后者,因为.then -chaining将得到快速笨拙。

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

基本上,您可以使用

await db.authenticate();

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

2 JavaScript承诺:按顺序执行承诺

为了更清楚地理解承诺,我一直在阅读一些非常有趣的文章。 我遇到了以下代码,它完美地用于顺序执行promises。 但我无法理解它是如何工作的。 我确实理解,promises会在创建后立即执行。 由于某种原因,我无法理解执行的流程。 特别是以下这一行: 如果有人可以帮助我理 ...

3 顺序执行大量承诺

一个nodejs项目。我已经尝试过按承诺依次运行大量(约100k)任务。 我所能做的就是用Q将其转换为workOnebyOne函数。是否有更好的方法呢? ...

4 承诺不按顺序执行javascript

我在下面使用promise执行下面的代码。我遇到的问题是,通过继续执行下一个块之前等待第一个块执行,保证没有按顺序执行 下面是代码: 下面是输出 [] //数组仍然为空 完成 汤姆 鸡巴 哈里 当我想要的是 汤姆 ...

5 承诺然后执行作业顺序

规范说 (第5段): 来自单个作业队列的PendingJob记录始终以FIFO顺序启动。 该规范未定义服务多个作业队列的顺序。 ECMAScript实现可以将作业队列的PendingJob记录的FIFO评估与一个或多个其他作业队列的PendingJob记录的评估交织在一起。 ...

6 确保执行顺序的承诺

我在端点处有以下两个承诺: 我想确保首先执行“请求1”而不是“请求2” 寻找时,我找到了promise.race,但是我看到了一些批评。 我该如何进行? ...

7 从功能执行承诺的顺序

我必须在函数内部执行Fetch promise返回,以便在其他人可以处理该数据之前转换一些数据。 因此,我创建了以下代码(为了说明就将其简化): 运行它,我以为控制台会显示:1 2,但它一直显示21。还有其他方法吗? ...

8 AngularJS承诺不会按顺序执行

我无法兑现某些承诺。 在我的应用程序的某些情况下,它们可以正常工作,但在某些情况下,它们永远无法工作。 在我的控制器中,我有以下命令: 立即调用redrawTasks函数,而无需等待redrawCategories完成。 我工厂内部的功能如下所示 另一个像 ...

9 如何按顺序执行承诺数组?

我有一系列需要按顺序运行的承诺。 调用 RSVP.all 将并行执行它们: 但是,我怎样才能按顺序运行它们呢? 我可以像这样手动堆叠它们 但问题是承诺的数量各不相同,而且承诺的数组是动态构建的。 ...

10 按顺序执行承诺

此页面上的示例。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/all 产量 所有p1-p5都立即执行,但是假设我要对其进行排序。 p1解析后, ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM