首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在TypeScript中导入ipfs

在TypeScript中导入ipfs
EN

Stack Overflow用户
提问于 2021-03-23 07:40:17
回答 1查看 448关注 0票数 1

使用JavaScript/TypeScript并使用requireimport,导入和模块初始化通常都很简单。我在运行JS website中的基本示例来初始化ipfs时遇到了问题。

如果我遵循一般的说明,我会得到一个错误:Module parse failed: Cannot use keyword 'await' outside an async function (6:13)

以下是关键代码:

代码语言:javascript
复制
const IPFS = require('ipfs-core');
const ipfs = await IPFS.create();

如果我按照建议将ipfs创建放在一个async函数中,我只会延迟不可避免的事情。如果我两次调用这样的函数,我会从Unhandled Rejection (LockExistsError): Lock already being held for file: ipfs/repo.lock得到一个错误。似乎我可以创建一个hack来测试是否创建了ipfs,并将其全局初始化为空模块,但这仍然是一个hack。

如何实现或重构const ipfs = await IPFS.create();而不出错?

EN

回答 1

Stack Overflow用户

发布于 2021-03-23 08:27:49

可能您的Node版本早于版本14,并且不支持在顶层调用await。你必须在一个异步块的上下文中。你可以这样做:

代码语言:javascript
复制
const IPFS = require('ipfs')

async function main() {
  const ipfs = await IPFS.create()
  /* Your code here */
}

// and now you can tell node to run your async main function...
main()

在v8引擎中查看https://v8.dev/features/top-level-await以了解有关它的更多信息。我还找到了这篇关于Node14对它的支持的文章:https://pprathameshmore.medium.com/top-level-await-support-in-node-js-v14-3-0-8af4f4a4d478

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66755284

复制
相关文章

相似问题

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