JQuery: Как добиться последовательного выполнения?
а еще лучше так:function load() {
    return $.post("engine/loadC.php", {fileName : "key.txt"}, function(data) {        
            key = JSON.parse(data);
    });
}

function process() {
    load().then(function(){
      alert(window.key);
    }); 
    /* последующий код */
}
если несколько аякс запросов можно такfunction loadKey() {
  return $.post("engine/loadC.php", {fileName : "key.txt"}, function(data) {        
    key = JSON.parse(data);
  });
}
function loadValue(){
  return $.post("engine/loadC.php", {fileName : "value.txt"}, function(data) {        
    value = JSON.parse(data);
  });
  
}
function process() {
  $.when(loadvalue(), loadKey()).then(function(){
    alert(window.key);
  } 
}
если принципиально делать аякс запросы в одной функции:function load() {
  var $def = new $.Deferred;

  $.post("engine/loadC.php", {fileName : "key.txt"}, function(data) {        
    key = JSON.parse(data);
  }).then(function(){
    $.post("engine/loadC.php", {fileName : "value.txt"}, function(data) {        
      value = JSON.parse(data);
      $def.resolve();
    });
  })

  return $def;
}

function process() {
  load().then(function(){
    alert(window.key);
  } 
}
Связать асинхрон и синхрон просто так не получится.
Либо паковать логику в асинхронное что-нибудь, либо ждать по таймеру.
Пример: по нажатии кнопки вызывать не process(), а load(), а вызов process перенести в success хендлер.