Web3js

我在瀏覽器中看不到乙太坊賬戶

  • May 17, 2021

Ganache 有 10 個乙太坊賬戶。我從事 Truffle 項目。每當我在 Nodejs 中執行以下程式碼時:

var Web3 = require('web3');
var web3 = new Web3("ws://localhost:8545");
var acc= Promise.resolve(web3.eth.getAccounts());
acc.then(function(ins){console.log(ins[0]);});

將顯示第一個帳戶的地址:

在此處輸入圖像描述

但我想在我的瀏覽器中查看該地址。什麼是合適的程式碼?

在您的工作範例中,您正在getAccounts以非同步方式處理結果:

web3.eth.getAccounts().then(console.log);

在您的非工作範例中,您錯誤地假設它同步執行到完成:

var acc=web3.eth.getAccounts();

函式web3.eth.getAccounts返回一個Promise對象,該對像在解析後包含在您的web3對象連接到的節點上解鎖的所有帳戶。

兌現這個諾言,你應該是好的。

要在瀏覽器中查看合約的值web3,您應該創建一些.jade文件。對於從瀏覽器與智能合約進行互動,工作流程是這樣的:有 3 個級別:1)區塊鏈級別,2)Nodejs 級別,和 3)UI/瀏覽器級別。在“區塊鏈級別”中有給定的智能合約(你擁有它)。在“Nodejs 級別”中,有相關的 JavaScript 程式碼需要web3模組並使用其方法。在“UI/瀏覽器級別”中有您的瀏覽器。合約連接到 Nodejsweb3並一起發送數據。另一方面,Nodejs 和瀏覽器也一起發送它們的數據。要在瀏覽器中查看此發送的數據,您應該創建一些.jade文件。Nodejs 將其數據發送給.jade文件,然後您通過瀏覽器執行該文件。為了成功地做到這一點,您需要了解 Nodejs 中的 JavaScript 程式。

引用自:https://ethereum.stackexchange.com/questions/79761