Javascript 函数是否在继续之前等待被调用函数完成?

Javascript 函数是否在继续之前等待被调用函数完成?,javascript,multithreading,function,abstract,Javascript,Multithreading,Function,Abstract,所以基本上在下面的示例中,如果运行function1,它会等到function2完成运行后,测试才等于1吗?或者它会在一个单独的“线程”上执行function2,该线程基本上运行function2,同时使测试等于1?(我想这就是它的名字,我对整个多线程技术不太了解) 否,它将等待功能2完成 有多种方法可以执行多线程,但它们需要一些工作,请参阅以获取更多信息。是的,您的function1将等待function2返回后再继续。但是,您的function2可能会调用setTimeout之类的函数,这些

所以基本上在下面的示例中,如果运行function1,它会等到function2完成运行后,测试才等于1吗?或者它会在一个单独的“线程”上执行function2,该线程基本上运行function2,同时使测试等于1?(我想这就是它的名字,我对整个多线程技术不太了解)


否,它将等待
功能2
完成


有多种方法可以执行多线程,但它们需要一些工作,请参阅以获取更多信息。

是的,您的
function1
将等待
function2
返回后再继续。但是,您的
function2
可能会调用
setTimeout
之类的函数,这些函数在
function1
完成之前不会运行,但是
function2
仍会在
function1
继续之前返回,即使它设置为在
setTimeout
内部运行的代码尚未运行


setTimeout
(和
setInterval
)函数不在单独的线程中工作,但它们通过在其他所有操作完成后运行代码来伪造。这是一个关于如何设置
function2()
的实现的问题。但是,几乎所有javascript都是以顺序方式执行的,除非使用
setTimeout()
setInterval()
或其他事件驱动机制来执行。然而,这并不是真正的多线程,简单地说,它只是等待其余代码执行来作弊


然而,您所说的是执行
function2()
然后等待它完成,然后执行
test=1
,您几乎可以将
function2()
的主体想象为插入到
function1()
主体的开头。关键词是“几乎”。但这应该让您了解JS是如何执行的。然而,V8(Google的javascript引擎)可以支持伪多线程环境。虽然这在技术上可以在正常运行的JS中完成,但很快就会变成一团乱麻。有关更多信息,请查看此信息。

它将等待它,然后继续。感谢您如此快速的回答!有什么方法或技术可以让它同时运行function2和test=1吗?@Cains,点击链接:-)
function function1() {
    function2();
    test = 1;
}