javascript - javascript 中的异步事务

标签 javascript

首先,回滚是我不关心的事情。

我希望能够使用名称/ID(或名称数组)锁定一系列异步函数/ promise /任务(让我们称之为“交易”),以便它们按顺序发生,等等由系统另一部分运行的具有相同名称的任何其他“事务”被延迟开始,直到使用相同名称的正在运行的事务完成。所以它基本上是对异步任务或“事务”序列进行排队。

下面是一些示例代码:

function a()
{
  // do stuff
  return new Promise(/*...*/);
}


function b()
{
  // do stuff
  return new Promise(/*...*/);
}



function c()
{
  // do stuff
  return a.then(() => b());
}

现在系统可以随时调用 abc,而当它调用时我不想 cb 同时运行,但是很明显c 依赖于b

我一直在 npm 上寻找一个包来帮助解决这个问题,但我没有找到任何东西,我想知道是否有人可以提出一些我可能错过的东西来帮助解决这个问题?

最佳答案

我认为gulp任务可以帮助您开箱即用。这保证 c 总是在 b 之后运行,因此 ba

之后运行
const gulp = require('gulp');
gulp.task('a', done => {
  // do stuff
  console.log('a');
  done();
});

gulp.task('b', ['a'], done => {
  // do stuff
  console.log('b');
  done();
});

gulp.task('c', ['b'], done => {
  // do more stuff
  console.log('c');
  done();
});

gulp.start('c'); // Logs a, b, c

Try it!

关于javascript - javascript 中的异步事务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43949458/

相关文章:

javascript - 将数据从一页上的表拉到另一页

javascript - 如何对对象数组执行搜索功能?

javascript - 使用 jest 更新组件状态

javascript - CORS 和 Access-Control-Allow-Headers 如何工作?

javascript - ExtJs - 动态更改文本字段 VType

javascript - 返回对象及其属性的子集

javascript - reactjs - anchor 标记链接

javascript - jQuery 是否清空通过 addEventListener 附加的分离监听器?

javascript - 如何在node js中处理大数据

javascript - React - 根据状态渲染子组件时无法在子组件中使用引用