Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
仅当另一个函数已在纯JavaScript中完成时触发函数?_Javascript_Function - Fatal编程技术网

仅当另一个函数已在纯JavaScript中完成时触发函数?

仅当另一个函数已在纯JavaScript中完成时触发函数?,javascript,function,Javascript,Function,仅当另一个函数完成时,如何才能触发该函数 在我的实际用例中,我需要一个接一个地触发这三个函数: dLoad(); masonry(); stylefix(); 如果您的函数是同步的,那么它已经按照您编写的方式完成了。如果它们不是(或其中一些不是),您可以将它们分组到一个异步函数下,并等待异步函数,如下所示: async function func(){ await dLoad(); // async function masonry(); // synchronous function

仅当另一个函数完成时,如何才能触发该函数

在我的实际用例中,我需要一个接一个地触发这三个函数:

dLoad();
masonry();
stylefix();

如果您的函数是同步的,那么它已经按照您编写的方式完成了。如果它们不是(或其中一些不是),您可以将它们分组到一个异步函数下,并等待异步函数,如下所示:

async function func(){
  await dLoad(); // async function
  masonry(); // synchronous function
  await stylefix(); // async function
}
另一种可能的情况是,您的函数是同步的,但其中包含一些异步操作,例如,让我们假设
massy()
可以做到这一点。在这种情况下,会发生以下情况:

dLoad>Mashine(无异步操作)>stylefix>msonry的异步操作

您可以这样做,因为这是您编写时对“函数已完成”的定义-您可能不需要完成此异步操作,就可以将
massy
定义为“完成”,并继续执行
stylefix


但是,如果确实需要在
massy
中完成所有异步操作,则还需要将其转换为异步函数,并等待该函数中的异步操作。如果您不明确地返回承诺,您就不必在外面等待它,但这样做会更具可读性,更明显,这是一个异步函数。

如果函数是synchronous@RE666你能补充这3个函数的更多细节吗?它们是同步的吗?异步?异步函数总是返回一个promisewell我在回答中假设了这个基本的JS知识。。我来澄清一下