最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

node.js将事件放在另一个事件之后

运维笔记admin10浏览0评论

node.js将事件放在另一个事件之后

node.js将事件放在另一个事件之后

假设我有两个异步事件,都需要进行远程交换的i / o。

placeOrder()
cancelOrder()

两个事件都以异步方式触发,这意味着可以在placeOrder返回之前调用cancelOrder。棘手的部分是我需要placeOrder首先返回一个订单ID,否则无法调用cancelOrder,所以我需要一些方法来阻止cancelOrder事件,直到placeOrder返回,并且阻塞不能太长,否则订单可能被执行,所以循环/超时/频繁检查在这里不起作用。

任何的想法?

回答如下:

你会使用Promise。如果你的函数已经返回一个promise,你可以使用then()简单地链接这两个函数

placeOrder().then(val => cancelOrder(val));

如果他们不这样做,你可以把它们放在new Promise里面

function foo() {
  return new Promise((resolve, reject) => {
    // do stuff
    resolve('<result of placeOrder here>');
  });
}

function bar(val) {
  return new Promise((resolve, reject) => {
    // do stuff
    resolve('whatever')
  })
}


and call 

foo()
  .then(value => bar(value))
  .then(console.log);
发布评论

评论列表(0)

  1. 暂无评论