首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在创建新的drizzle.contracts实例之后,是空对象

在创建新的drizzle.contracts实例之后,是空对象
EN

Ethereum用户
提问于 2019-02-16 18:16:52
回答 1查看 386关注 0票数 0

在创建了一个新的目录并传递了所需的选项之后:

代码语言:javascript
复制
const drizzle = new Drizzle(options);

对象drizzle.contracts是一个空对象,而不是options中指定的契约数组。因此,尝试通过调用以下命令来访问合同事件:

代码语言:javascript
复制
drizzle.contracts.MyContract.events

将导致错误:

TypeError:无法读取未定义的属性“events”

这是因为drizzle.contracts.MyContract是未定义的。drizzle.contracts是一个空对象。

EN

回答 1

Ethereum用户

回答已采纳

发布于 2019-02-16 18:20:28

毛毛雨对象的新实例不是立即初始化的。它是异步完成的。

我们必须等到它完成初始化后才能访问它。

这可以通过以下async代码块来完成,在添加新drizzle实例中的任何契约之前必须调用该代码块。

代码语言:javascript
复制
var state = this.drizzle.store.getState();
while (!state.drizzleStatus.initialized) {
  const delay = new Promise(resolve => setTimeout(resolve, 500));
  await delay;
  state = this.drizzle.store.getState();
  console.log(state.drizzleStatus);
}
票数 0
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/67168

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档