【发布时间】:2021-10-07 04:46:22
【问题描述】:
我知道这听起来很愚蠢,因为 javascript 是单线程的,但我不禁想到一个函数会花费大量时间而无需像这样的 Web API 参与
console.log("start")
function apple() {
let appleCount = 10;
while (appleCount < 1000000) {
appleCount = appleCount + 10;
appleCount = appleCount * 0.0000052
}
}
apple();
console.log("end")
那么有没有办法异步运行这个苹果函数...我尝试在浏览器中运行此代码但没有得到任何结果...帮帮我..
【问题讨论】:
-
使用服务人员
-
你期待输出:“开始,结束,苹果完成” insted “开始,苹果完成,结束”吗?使用 async / await 功能是可能的。
-
我期待开始,结束,苹果完成......我认为异步/等待是不可能的
-
运行 100% 纯 Javascript 以使其不会阻塞主线程的唯一方法是在不同的线程中运行它(在 nodejs 中,使用 WorkerThread)。正如您似乎知道的那样,主线程在单个线程中运行您的 Javascript,因此任何简单的 Javsacript 都会占用该单个线程。要让它不占用那个单一线程,你必须在不同的线程中运行它,要么是 WorkerThread,要么是另一个进程。
-
@AbHisheKThaKur,是的,你说得对,我的错。
标签: javascript node.js asynchronous-javascript