首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >web3 [object,Promise]错误:.then和await不起作用

web3 [object,Promise]错误:.then和await不起作用
EN

Stack Overflow用户
提问于 2021-07-25 08:26:55
回答 1查看 101关注 0票数 0
代码语言:javascript
复制
    <script src="https://cdn.jsdelivr.net/npm/web3@latest/dist/web3.min.js"></script>
    <script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
...
    <script>
      const web3 = new Web3('https://bsc-dataseed1.binance.org:443');
      const version = web3.version.api;
      const burnAddress = "0x000000000000000000000000000000000000dead";

      //jQuery pull of contractABI from getAddress
      function pullData() {
        getAddress = $('input[name="contractAddress"]').val();
        getJSONString = 'https://api.bscscan.com/api?module=contract&action=getabi&address=' + getAddress + '&apikey' + API_KEY;
        $.getJSON(getJSONString, function(data) {
          contractABI = JSON.parse(data.result);
          //document.getElementById("json").innerHTML = "JSON: " + JSON.stringify(contractABI);
          myContract = new web3.eth.Contract(contractABI, getAddress);
          decimals = tokenContract.methods.decimals().call(); // promise error
          document.getElementById("decimals").innerHTML = "Decimals: " + decimals;

        });
        document.getElementById("addy").innerHTML = "Address: " + getAddress;
       }
     </script>

似乎无论我做什么,我都无法获得要填充的数字,而且JSON.stringify()也不会显示任何内容。

是的,表单输入被传递到调用pullData(),然后地址拉出一个ABI (可以工作)我可以创建一个新的contract实例,我可以拉出尽可能多的对象,承诺从读取文档中可以处理任何“我的方法”(也是,console.log(十进制)也可以,但没有一个显示数字的超文本标记语言。我在这里找过了,我漏掉了什么?

上面的代码来自我的普通测试HTML页面。

谢谢,MaxFlowO2

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-25 08:35:09

我对此API了解不多,但我认为您需要更改以下内容:

代码语言:javascript
复制
decimals = tokenContract.methods.decimals().call(); // promise error
document.getElementById("decimals").innerHTML = "Decimals: " + decimals;

类似这样的东西:

代码语言:javascript
复制
tokenContract.methods.decimals().call().then(decimals => {
  document.getElementById("decimals").innerHTML = "Decimals: " + decimals;
});

也许阅读一下Promise.then()可能会对你有所帮助。在此之后,查找async/await。

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

https://stackoverflow.com/questions/68514729

复制
相关文章

相似问题

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