如何使 returns 承诺不阻止其他代码的功能?

How can I make this function that returns promise not block the other codes?

我是 Promise 的新手。这是我的代码

  function heavyProcess(){

    var ts = + new Date();
    while((+ new Date() - 2000) < ts ){
      //2 second delay to simulate lengthy process
    }
    console.log('after 2 seconds');

    return Promise.resolve("Done");
  }

  console.log("START");
  heavyProcess().then(function(resolve){
    console.log(resolve);
  });
  console.log("END");

它的输出是

START
after 2 seconds
END
Done

我怎样才能做到这一点?我不希望调用繁重的进程阻止下一个代码。

START
END
after 2 seconds
Done

我一直在阅读有关 Promise 的内容,但我似乎无法完成这项工作。

这是你需要的吗?

    var p = () => new Promise((resolve, reject) => {
setTimeout(() => {
console.log('after 2 seconds');
resolve("Done");
  }, 2000);
});

console.log("START");
p().then((data) => {
  console.log(data);
});
console.log("END");