📜  如何在返回函数的变量之前等待承诺完成?

📅  最后修改于: 2022-05-13 01:56:23.997000             🧑  作者: Mango

如何在返回函数的变量之前等待承诺完成?

这里的 promise 是从异步函数返回的对象,可以根据前一个函数的结果添加回调方法。它是为像队列或函数链一样的函数的背靠背执行而完成的。因此,当函数在队列中时,它后面的函数必须等待前一个函数的结果。为此,有两种流行的方法如下所述。

  • 使用 setTimeout()函数
  • 使用 async 或 await()函数

setTimeout()函数的使用:为了在返回变量之前等待一个promise完成,可以用setTimeout()设置函数,让函数等待几毫秒。

下面的程序将说明该方法:
程序 :


输出:

waited for 2 seconds
waited for 4 seconds
This is failure callback

使用 async 或 await()函数:如果无法指定 setTimeout() 中所需的确切时间,则可以使用此方法。 async 关键字用于创建一个异步函数,该函数返回一个被拒绝或解决的承诺。当该函数抛出未捕获的异常或以其他方式解决时,promise 将被拒绝。 await 关键字在异步函数中用于暂停其执行并等待承诺。

下面的程序将说明该方法:
程序 :

                    

输出 :

async function called
Entered first function
Returned first promise
After awaiting for 2 seconds, the promise returned from first function is:
                 This is first promise
Entered second function
Returned second promise
After awaiting for 4 seconds, the promise returned from second function is:
                 This is second promise