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