异步/同步:如何确保Javascript函数在for循环之后执行?
例如,我有以下代码:异步/同步:如何确保Javascript函数在for循环之后执行?,javascript,asynchronous,synchronous,Javascript,Asynchronous,Synchronous,例如,我有以下代码: var smth=''; 对于(变量i=0;i
var smth='';
对于(变量i=0;i<10;i++){
//我从别处调用的一些长函数
对于(var k=0;k<10000;k++){
smth+=k+'';
}
smth+=i;
}
控制台日志(smth)代码>Javascript同步执行代码,即一次执行一行代码。这意味着console.log语句将在for循环完成执行后执行。Javascript同步执行代码,即一次执行一行。这意味着console.log语句将在for循环完成执行后执行。for循环
是阻塞任务,因此在这种情况下,您的console.log()
将始终在for循环后执行。for循环
是阻塞任务,因此,在本例中,您的console.log()
将始终在for循环之后执行
我能否确保console.log将始终在for循环处理完我的smth参数后执行
对。没有什么是异步的
那么所有的异步/同步执行呢
这里没有任何异步代码
如何重写代码,使console.log与for循环同时执行
您需要使代码无阻塞。核心JavaScript中对此没有任何内容。某些主机环境提供了一种通过辅助线程的形式
- 对于浏览器
- 对于Node.js
我能否确保console.log将始终在for循环处理完我的smth参数后执行
对。没有什么是异步的
那么所有的异步/同步执行呢
这里没有任何异步代码
如何重写代码,使console.log与for循环同时执行
您需要使代码无阻塞。核心JavaScript中对此没有任何内容。某些主机环境提供了一种通过辅助线程的形式
- 对于浏览器
- 对于Node.js
这可能有助于您提供有关此“长函数”功能的更多详细信息?这可能有助于您提供有关此“长函数”功能的更多详细信息?以及foreach
?他们也封锁了吗?任何循环都是非阻塞的吗?Javascript是一个单线程环境,只有异步函数是……非常异步的,foreach
?他们也封锁了吗?任何循环都是非阻塞的吗?Javascript是一个单线程环境,只有异步函数是……非常异步的