我正在开发一个chrome 扩展,在其中单击按钮时,我需要来自ajax GET 的数据,然后需要进行进一步处理。为此,我想要同步 ajax 调用,但它给了我一个错误错误:主线程上的同步 XMLHttpRequest 已被弃用,因为它会对最终用户的体验产生不利影响。我知道这个错误是因为我设置了async=false,但是除非我没有从 API 获取数据,否则我无法进行进一步处理。下面是我的代码:var nonce;window.addEventListener('load', function load(event){ var createButton = document.getElementById('send'); createButton.addEventListener('click', function() { signTransaction('abc',12,'abc'); });});function signTransaction(to,amount,inputhex){ nonce = getNonce(); console.log(nonce); tx = { To : to, PrivateKey : pri, Balance : amount, Nonce : String(nonce), Gas : "1", Type : "a64", Input : inputhex } let transaction = new sdag.Signs.NewTransaction(pri,tx);}function getNonce() { var request = new XMLHttpRequest(); request.open('GET', 'http://192.168.xx.xx:9999/getAccount?address=xxxxxxxxx', false); request.onload = function () { var data = JSON.parse(this.response); if (request.status >= 200 && request.status < 400) { nonce = data.Nonce; } else { console.log('error'); } } // Send request request.send(null); return nonce; }您可以签入代码,signTransaction()首先我需要getNonce()函数中的随机数,然后可以更进一步。所以,我将 async false 设置为这个函数。有人可以帮我解决这个问题吗?
添加回答
举报
0/150
提交
取消