当前位置: 首页 > 知识库问答 >
问题:

promise听众[重复]

李星波
2023-03-14

我是一个巨大的promise链,但我意识到其中一个函数返回一个对象,该对象具有侦听器,并对回调作出反应,如

object.on('data', function(err, data) {
     //do something
});

object.on('exit', function(err, data) {
     //do something
});

我想知道是否有一种方法可以使用promise来实现这一点,并将其转化为可选项。除了重写我的整个promise链来使用回调,没有其他选择吗?

共有1个答案

容宏逸
2023-03-14

你不能把这个东西包起来吗?

var promiseForObjectData = new Promise(function(resolve, reject) {

  // Note that you can't promisify data, because it gets called multiple times.
  object.on('data', function(err, data) {
    if (err) return reject(err);
    //do something
  });

  object.on('exit', function(err, data) {
    if (err) return reject(err);
    return resolve(...whatever...);
  });

});
 类似资料:
  • 监听器提供对JMeter在JMeter运行时收集有关测试用例的信息的访问。 听众收集的结果或信息可以以下列形式显示: tree tables graphs 日志文件 当指定一个侦听器时,所有侦听器都将相同的原始数据写入输出文件。 默认配置 要保存的默认项目可以通过以下两种方式之一定义 - 在jmeter.properties (或user.properties)文件中。 此文件存在于JMeter的

  • 我试图通过stackoverflow搜索这个问题,但找不到合理的答案。我对@Kafkalistener注释的方法的签名很好奇,我们需要遵循什么约定吗?。如果我们想通过方法注入传入spring管理的bean呢?我试图通过方法注入将服务类传递给kafka侦听器- 我得到以下例外- 如果我使相关服务类自动生成,工作正常。

  • 我遇到了这个githttps://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md,它展示了开发人员如何通过添加“被动监听器”来提高滚动性能。我第一次看到它是在我的chrome向我显示警告时(确切的警告是“由于主线程繁忙,‘触摸启动’输入事件的处理延迟了126毫秒”。考虑将事件处理程序标记为“被动”,以使页面更具响应性。

  • 所以首先,为了能够暂停/停止消费者,我必须访问MessageListenerContainer。这意味着,在配置中,我将创建:ConcurrentKafkaListenerContainerFactory并(从2.2开始)使用它创建ConcurrentMessageListenerContainer的托管bean。然后可以使用这个bean来启动/停止消费者。管用。一旦它是并发的...我假设,我传递

  • 有什么不同吗?术语KafkaConsumer和KafkaListener可以互换使用吗?

  • 问题内容: 说我有一个摇摆的GUI,我想听。您认为谁应该是侦听器类,谁应该负责?实施它的最佳或首选方式是什么?有什么意见吗?我通常会这样: 有没有更好的办法? 编辑: 谢谢大家的智慧和帮助。我很感激。 问题答案: 有几种执行事件侦听器的常用方法(在下面的代码中,我想到的唯一一个就是静态内部类)。下面的代码使用ActionListener,因为它很简单,但是您可以将其应用于任何侦听器。 请注意,“这