2 javascript 对象事件处理程序交互

时间:2020-12-27 23:18:40

标签: javascript asynchronous events

我想做以下事情

let o1
let o2

o1.call()
  .on('x', function(result1) {

    o2.call()
      .on('y', function(result2) {  }) //expecting a value returned 

    result1 += result2 //modify result1
  })
  .next(function(result1) { 
    // do something with modified result1      
  })

以上只是伪代码。

我想修改on('x')里面的result1,它会等待o2.on('y')吗?

如何在 on('x') 中使用 result2 修改 result1?

实际上我想要如下内容:

let o1
let o2

o1.call()
  .on('x', function(result1) {

    result1 += o2() //sync, but I have no control over this o2 external library/ object that was designed to be async

  })
  .next(function(result1) { 
    // do something with modified result1      
  })

1 个答案:

答案 0 :(得分:1)

您可以在result1内修改function(result2) { }

.on('y', function(result2) {
    result1 += result2
})