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

时间:2019-12-18 10:10:11

标签: javascript function

只有在另一个功能完成后才可能触发一个功能?

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

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

1 个答案:

答案 0 :(得分:1)

如果您的函数是同步的,则它已按照编写它的方式完成。如果它们不是(或其中一些不是),则可以将它们组合在一个异步函数下,然后等待异步函数,如下所示:

async function func(){
  await dLoad(); // async function
  masonry(); // synchronous function
  await stylefix(); // async function
}

另一种可能的情况是您的函数是同步的,但是内部有一些异步操作,例如,假设masonry()可以做到这一点。在这种情况下会发生什么:

dLoad>石工(不执行异步操作)> stylefix> msonry的异步操作。

您可能还可以,因为这是您编写时“函数已完成”的定义-可能不需要完成此异步操作即可将masonry定义为“完成”,然后继续执行stylefix

但是,如果确实需要完成masonry内的所有异步操作,则还需要使其成为异步函数和await到该函数内的异步操作。如果您没有明确地返回诺言,则无需在外部await进行操作,但是它将更具可读性,并且显然这是这种异步函数。