错误:主线程上的同步 XMLHttpRequest 已被弃用,因为它对最终用户的体验有不利影响

我正在开发一个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 设置为这个函数。有人可以帮我解决这个问题吗?


交互式爱情
浏览 531回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript