MetaMask - RPC 错误:权限请求已经挂起,在 Angular 10 中

Posted

技术标签:

【中文标题】MetaMask - RPC 错误:权限请求已经挂起,在 Angular 10 中【英文标题】:MetaMask - RPC Error: Permissions request already pending, in Angular 10 【发布时间】:2021-03-06 21:32:56 【问题描述】:

我已将 MetaMask 与 Angular 集成,并在从代码中打开 MetaMask 扩展时收到此错误。

以下是我打开扩展程序的代码。 我在单击时调用此函数以打开 MetaMask,它给出了该错误

MetaMask - RPC 错误:权限请求已挂起;请稍等。 代码:-32002,消息:“权限请求已挂起;请稍候。”

ethEnabled(template?): any
  
    if ((window as any).web3)
    
      (window as any).web3 = new Web3((window as any).web3.currentProvider);
      (window as any).ethereum.enable();
      console.log((window as any).ethereum.enable());

    
    else
    
      this.modalRef = this.modalService.show(template);
    
  

【问题讨论】:

【参考方案1】:

这个错误实际上是预期的;当您已提交权限请求,但用户尚未登录 MetaMask 或未授予您应用的权限时,就会发生这种情况。

如果用户登录 MetaMask 并接受权限请求,则不会再出现此错误。

这在docs 中有解释,其中写着You should always disable the "connect" button while the connection request is pending(否则会出现此错误)。

这是处理此问题的一种方法:

在请求挂起时禁用按钮 如果用户在一定的等待时间(可能是 10-20 秒?)后仍未连接,请在按钮下方显示一条消息,要求用户完成 MetaMask 连接。

their docs here 中有更多信息和一个很好的例子。

【讨论】:

【参考方案2】:

清除您的互联网缓存、临时文件等

【讨论】:

作为答案的一部分,您应该提供一个示例来说明如何完成“清除 Internet 缓存、临时文件等”

以上是关于MetaMask - RPC 错误:权限请求已经挂起,在 Angular 10 中的主要内容,如果未能解决你的问题,请参考以下文章

我收到一个错误:“MetaMask - RPC 错误:错误:错误:[ethjs-rpc] rpc 错误与有效负载”

MetaMask - RPC 错误:错误:MetaMask Tx 签名:用户拒绝交易签名

MetaMask/json-rpc-middleware-stream

Plasm部署智能合约——配置MetaMask-RPC网络——2021.6.2

Plasm部署智能合约——配置MetaMask-RPC网络——2021.6.2

metamask api 请求 一般操作