javascript异步等待转换为承诺

javascript异步等待转换为承诺,javascript,asynchronous,promise,async-await,Javascript,Asynchronous,Promise,Async Await,我有以下在Chrome中运行良好的代码: async function request(config) { if (config.url.indexOf('templates/') > -1) { await $.getJSON('../../../../version.json', function (data) { config.url += '?v=' + data.version;

我有以下在Chrome中运行良好的代码:

async function request(config) {
            if (config.url.indexOf('templates/') > -1) {
                await $.getJSON('../../../../version.json', function (data) {
                    config.url += '?v=' + data.version;
                });


            }

            var deferred = $q.defer();
            deferred.resolve(config);
            return deferred.promise;
        }

由于Internet Explorer不支持async/await,我如何将代码转换为使用承诺而不是async/await,以便它在Internet Explorer中运行?

如下更改getJSON中的代码

function request(config) {
  if (config.url.indexOf('templates/') > -1) {
    return $.getJSON('../../../../version.json')
      .then(function(data) {
        config.url += '?v=' + data.version;
        return config;
      });
  }
  var deferred = $q.defer();
  deferred.resolve(config);
  return deferred.promise;
}