node.js - 通过回调或承诺调用 setTimeouts
问题描述
我有 3 个 setTimeouts,我需要使用回调或承诺一一执行(同步方式),下面是我的代码和输出。
嗨,我是订单 1,嗨,我是订单 2,嗨,我是订单 3。
下面是我的代码:
setTimeout(function() {
console.log('Hi I am order 1');
test2();
}, 3000);
setTimeout(function() {
console.log('Hi I am order 2');
test3();
}, 2000);
setTimeout(function() {
console.log('Hi I am order 3');
}, 1000);
解决方案
如果我理解正确 - 您希望每个功能在前一个功能结束时运行。一种简单的方法是从前一行的最后一行调用每一个。有了承诺,我会使用http://bluebirdjs.com/docs/api/promise.each.html
Promise.each
串行运行您的所有功能。请注意,它需要一个 Promise(如果您没有以 Promise 响应 - 它会并行运行所有这些)。
推荐阅读
- c++ - 如何将 char** 作为参数传递给线程函数
- javascript - App Engine 不会更新依赖项的更改
- c# - C# 保持哈希盐的安全,即使是来自开发人员
- javascript - Chrome 扩展内联脚本解决方法
- node.js - “docker-entrypoint.sh\”:在 $PATH 中找不到可执行文件
- google-sheets - 过滤谷歌表格中的一个或多个标签
- r - 在 R Plumber 中发帖不断给出错误信息
- r - 使用 `ggtheme` 包自定义 R 中的 checkresiduals() 函数
- javascript - JavaScript:使用递归检查数字是否为素数
- c# - 一旦CircleCast在Unity中碰到某些东西就停止它?