让我们想象,我有一些代码:写一个函数回调
var someString = "";
function do1(){
doA();
doB();
}
function doA(){
// some process that takes time and gets me a value
someString = // the value I got in prior line
function doB(){
//do something with someString;
}
什么是确保somestring由DOB定义尝试使用它的正确方法?我认为这是一种需要回调的情况,但我不确定如何设置它?
究竟什么是“一些过程时间”?它是异步的,即函数在完成之前是否返回? – Ryan
我想我有点困惑。我知道如果代码是异步的(例如使用ajax的东西),我会需要一个解决方案,但是在任何情况下doB都可以在doA之前执行,因为doA非常慢(即一些巨大的循环),或者代码总是一行一行地运行,除非一行是异步的? – COMisHARD
好吧。如果它是异步的,它将不会逐行运行。如果您在doA()内部进行ajax调用,它很可能是异步的(不要将async设置为false)。如果doA()中有一个巨大的循环,它会将someString设置为doB()之前仍会运行的内容。但是如果发生大的循环,你可能想看看webworkers,这将允许你做多线程。 – Thomas