- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我有一个组件需要在其生命周期的某个时刻发出一个事件。此事件将由同级组件监听。
我正在使用事件中心进行此通信。
但是,我在尝试调用 eventHub.$emit('EventName')
时遇到了 Uncaught TypeError
。
这是控制台中收到的完整错误。
vue.js?3de6:2400 Uncaught TypeError: cbs[i].apply is not a function
at Vue$3.Vue.$emit (eval at <anonymous> (http://rounds.smaa.app:8000/js/app.js:322:1), <anonymous>:2400:16)
at Vue$3.e.(anonymous function) [as $emit] (chrome-extension://nhdogjmejiglipccpnnnanhbledajbpd/build/backend.js:1:6235)
at VueComponent.importPlayers (eval at <anonymous> (http://rounds.smaa.app:8000/js/app.js:178:1), <anonymous>:98:64)
at Proxy.boundFn (eval at <anonymous> (http://rounds.smaa.app:8000/js/app.js:322:1), <anonymous>:130:14)
at Object.change [as fn] (eval at <anonymous> (http://rounds.smaa.app:8000/js/app.js:261:1), <anonymous>:118:13)
at HTMLInputElement.eval (eval at <anonymous> (http://rounds.smaa.app:8000/js/app.js:322:1), <anonymous>:2229:16)
这是导致错误的代码:
importPlayers(e) {
eventHub.$emit('AdminAddedPlayers');
this.importing = true;
this.success.import = false;
...
...
}
组件似乎没有任何其他问题,但这是完整的组件和事件中心:
assets/js/components/Admin/AdminImportPlayersComponent
<template>
<div class="component">
<!-- removed some boilerplate markup for brevity -->
<template v-if="! importing && ! warning.invalid_data_submitted">
<h4>Import Players</h4>
<div class="form-group" :class="error.import ? 'has-error' : ''">
<input type="file" @change="importPlayers($event)" id="file" class="form-control">
<div v-if="error.import" class="help-block danger">
You need to select a valid excel file.
</div>
</div>
</template>
</div>
</template>
<script>
import eventHub from '../../../events.js';
export default {
data() {
return {
importing: false,
error: {
import: false,
other: false,
},
warning: {
invalid_data_submitted: false,
invalid_fixed_data_submitted: false
},
success: {
import: false
},
invalid_players: [],
teams: [],
loader_color: '#0d0394'
}
},
methods: {
importPlayers(e) {
eventHub.$emit('AdminAddedPlayers');
this.importing = true;
this.success.import = false;
var formData = new FormData();
formData.append('players', e.target.files[0]);
return this.$http.post('/admin/players/import', formData).then((response) => {
if (response.data.invalid_player_data.length) {
this.invalid_players = response.data.invalid_player_data;
this.warning.invalid_data_submitted = true;
this.getTeams();
} else {
this.success.import = true;
}
this.importing = false;
this.error.import = false;
this.error.other = false;
}, (response) => {
if (response.data.players) {
this.error.import = true;
} else {
this.error.other = true;
}
this.importing = false;
this.warning.invalid_data_submitted = false;
this.success.import = false;
});
},
submitFixedPlayers() {
eventHub.$emit('AdminAddedPlayers');
this.importing = true;
return this.$http.post('/admin/players/import/fixed', {
players: this.invalid_players
}).then((response) => {
// conditionals
}, (response) => {
this.importing = false;
});
},
getTeams() {
return this.$http.get('/admin/teams/fetch').then((response) => {
// team stuff
});
},
setDefaultTeams() {
// setting default teams
}
}
}
Assets /js/events.js
module.exports = new Vue()
Vue源码在Vue中指向这段代码:
Vue.prototype.$emit = function (event) {
var vm = this;
var cbs = vm._events[event];
if (cbs) {
cbs = cbs.length > 1 ? toArray(cbs) : cbs;
var args = toArray(arguments, 1);
for (var i = 0, l = cbs.length; i < l; i++) {
cbs[i].apply(vm, args);
}
}
return vm
};
最佳答案
当使用 $on
监听 eventHub
发出的事件时,我发现你不能传入参数,像这样:
vm.$on('Event', this.callback(arg1));
这似乎抛出了一个 TypeError
。
文档提到传递给 $emit
的任何参数,如下所示:
vm.$emit('Event', args);
将自动传递到 $on
回调中。
所以下面的代码是正确的(并且对我有用):
vm.$emit('AdminAddedPlayers', 1)
vm.$on('AdminAddedPlayers', this.callback);
执行时,从$on
调用callback
是这样的:
this.callback(arg);
其中arg
是从$emit
传入的。
关于javascript - 使用 eventHub 在 Vue 中发出事件的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41916838/
我正尝试按照教程实现接收器部分 https://azure.microsoft.com/en-us/documentation/articles/event-hubs-java-ephjava-get
我想发送给eventhub客户,然后将其下载到示例数据(例如天气)并发送另一个eventhub。我的代码无法正常工作。没有错误,但数据没有发送到数据库。 public Task ProcessEven
在我的应用程序中,发布到 Eventhub 的各种事件。但是我的消费者群体只需要特定的一组事件。如何在 Eventhub 中过滤这个? 最佳答案 关注此 post : event hubs doesn
比方说,当处理来自 Azure EventHub 的批量事件时发生 transient 故障并且 transient 故障即使在重试后仍然持续,那么可以从处理器向 Eventhub 抛出哪种异常?以便
没有现成的解决方案可以将数据从一个 Azure EventHub 克隆到另一个 EventHub。有哪些可能的选择来实现这一目标? 最佳答案 复制 Azure EventHub 流的一个简单选项是在
Azure 事件中心发布了一个现代客户端库 (Azure.Messaging.EventHubs),用于读取和写入事件中心。新库应该取代旧库 (Microsoft.Azure.EventHubs),所
我的要求是使用 Spring 的 Azure 事件中心进行简单的发布-订阅。 在检查文档后,我发现了 2 篇文章演示了集成。 One uses azure-eventhubs图书馆和the other
我的要求是使用 Spring 的 Azure 事件中心进行简单的发布-订阅。 在检查文档后,我发现了 2 篇文章演示了集成。 One uses azure-eventhubs图书馆和the other
我需要获取 EventHub 的分区列表。我正在尝试使用最新 SDK 中的 EventProcessorClient。这似乎没有 getRuntimeInformation 方法。 有什么方法可以使用
作为安全产品的一部分,我拥有大规模云服务(azure 辅助角色),它从事件中心读取事件,将它们批量处理到约 2000 个,然后存储在 blob 存储中。每个事件都有一个 MachineId(发送该事件
升级 然后构建 返回 “命名空间“Microsoft.Azure”中不存在类型或命名空间名称“EventHubs”(是否缺少程序集引用?)[sss-af-filter]” “找不到类型或命名空间名称“
使用 Event Hub Premium 时我们必须计算的 Azure Event Hub 吞吐量限制是多少? The documentation说使用高级层时每个 PU 没有限制,但我不明白这意味着
实际上是在尝试做一些我不擅长的事情。 我在这里阅读了持久功能概述 - https://learn.microsoft.com/en-us/azure/azure-functions/durable/d
我在 java 中运行事件中心函数的发送者类应用程序。 下面是输出: [main] INFO com.azure.messaging.eventhubs.EventHubClientBuild
全部, 我设置了 EventHub 命名空间和 EventHub,并能够使用 Python 脚本成功向其发送和接收事件。我还能够启用捕获功能并将事件以 Avro 格式存储在 Azure Blob 存储
为什么我们需要 Azure 存储帐户上的 blob 容器用于 Eventhub 消费者客户端(我使用的是 python)。为什么我们不能像在 Kafka 中那样直接使用来自 Eventhub(Kafk
全部, 我设置了 EventHub 命名空间和 EventHub,并能够使用 Python 脚本成功向其发送和接收事件。我还能够启用捕获功能并将事件以 Avro 格式存储在 Azure Blob 存储
我们正在开发一个 Multi-Tenancy 应用程序,其中 eventhub 将在不同租户之间共享。我们将在租户之间分配分区。每个租户将在不同的分区上发送消息。我们希望在分区级别对租户进行身份验证。
据我了解,eventhub 每秒可以处理/摄取数百万条消息。为了调整摄取,我们可以使用吞吐量。 更高的吞吐量=更强的摄取能力。 但是在接收/消费方面,您最多可以创建 32 个接收者(因为我们可以创建
为什么我们需要 Azure 存储帐户上的 blob 容器用于 Eventhub 消费者客户端(我使用的是 python)。为什么我们不能像在 Kafka 中那样直接使用来自 Eventhub(Kafk
我是一名优秀的程序员,十分优秀!