只有在另一个功能完成后才可能触发一个功能?
在我的实际用例中,我需要一个接一个地触发这三个功能:
dLoad();
masonry();
stylefix();
答案 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
进行操作,但是它将更具可读性,并且显然这是这种异步函数。