我正在使用 web3 版本1.0.0-beta.27
,其中对区块链的所有访问都是异步的,显然这开启了竞争条件的可能性,即:
var Web3 = require("web3");
// connect to etherum blockchain
var ether_port = 'http://localhost:8545'
var web3 = new Web3(new Web3.providers.HttpProvider(ether_port));
// this is how we set the value, note there is the possiblity of race condidtions here
var accounts = []
web3.eth.getAccounts().then(function(accts){
console.log("printing account: ", accts)
accounts = accts
})
// observe race condition
console.log("assert race condition: ", accounts[0])
上面的最后一行是人为的,它在那里证明我想accounts
在评估后使用它。即,最终我想从前端express.js
Web 应用程序甚至移动应用程序修改/读取区块链,所以为了严谨起见,node.js
确保竞争条件永远不会发生的常用工具是什么?这些工具存在吗?如果不是什么是一些常见的做法。我node.js
也是新手。