Merhaba, Yabancı!

Burada yeni gibi görünüyorsunuz. Eğer katılmak istiyorsanız düğmelerden birine tıklayınız.

Fetching cross domain information synchronously

kategorisi Geliştirme [?]

Hi, I'm looking for proper use of GM_xmlhttpRequest, so that the script continues only after it's fully dispatched, ie. the onload function runs and finishes. I use Tampermonkey if it does matter.

Yorumlar

  • Wrap it in a Promise, here's a bare bones example:

    function gmGet(args) {
      return new Promise((resolve, reject) => {
        GM_xmlhttpRequest(
          Object.assign({
            method: 'GET',
          }, args.url ? args : {url: args}, {
            onload: e => resolve(e.response),
            onerror: reject,
            ontimeout: reject,
          })
        );
      });
    }
    

    Then use it with async/await syntax:

    (async () => {
      const text = await gmGet('https://www.example.org/');
      const json = await gmGet({
        url: 'https://www.example.org/api.json',
        responseType: 'json',
      });
      // the data should be used inside this function, this is how asynchronous code works
    })();
    

    There are many existing wrappers that add more functionality/reliability.

Yorum yapmak içinOturum Açın yada Kayıt Olun .