Ich versuche einfach, den Balance-Wert eines Ethereum-Kontos mit dem web3 api zurückzugeben, ich möchte diesen Wert im $ scope erhalten, damit ich ihn verwenden kann mein HTML. Leider bekomme ich immer einen Wert undefiniert. Ich vermute, es kommt von der Tatsache, dass Web3 asynchron sein könnte, aber ich bin mir nicht sicher. Hier ist mein Code:
app.controller('mainController', function ($scope) {
$scope.showBalance = function(){
web3.eth.getBalance("0xCc26fda641929192B2Fe96BBc37DB5B451Cb9A8c",
function(err, res){
$scope.balance = res.c[0]
console.log("This is inside:" + $scope.balance);
});
console.log("This is outside:" + $scope.balance);
};
angular.element(document).ready(function() {
$scope.showBalance();
});
});
Grundsätzlich ist die console.log („Dies ist innen“) arbeitet, und ich tue den richtigen Wert erhalten. Aber die console.log („Das ist außerhalb“) nicht und ich bekomme einen nicht definierten Wert ...
Ich weiß nicht, was web3.eth.getBalance ist, aber ich nehme an, es ist ein Versprechen. Wenn dies der Fall ist, wird der Code in der Callback-Funktion nicht ausgeführt, bis das Versprechen gelöst ist. Währenddessen wird der andere Code weiter ausgeführt. Sie können dies sehen, wenn Sie während der Ausführung durch den Code gehen – jbrown