Javascript 如何等待一个函数完成后再继续?

Javascript 如何等待一个函数完成后再继续?,javascript,Javascript,我有三个功能。调用层次结构如下所示: function a() { b(); c(); } function b() { d(); } 我想要的是完成b然后继续做c。但是d是异步的。我无权更改b和d中的任何内容。有什么办法处理这个案子吗?对不起,我的英语不好。几乎肯定不行。您需要回调、承诺或事件 由于无法更改b(),因此无法将回调参数添加到d()(假设它首先接受了回调参数),也无法捕获d()(假设它首先返回了承诺)的返回值 我们无法判断d()完成后是否会触发DOM上的

我有三个功能。调用层次结构如下所示:

function a() {
    b();
    c();
}

function b() {
    d();
}

我想要的是完成b然后继续做c。但是d是异步的。我无权更改b和d中的任何内容。有什么办法处理这个案子吗?对不起,我的英语不好。

几乎肯定不行。您需要回调、承诺或事件

由于无法更改
b()
,因此无法将回调参数添加到
d()
(假设它首先接受了回调参数),也无法捕获
d()
(假设它首先返回了承诺)的返回值


我们无法判断
d()
完成后是否会触发DOM上的事件(或者即使您在有DOM的上下文中运行JS)。

几乎肯定不会。您需要回调、承诺或事件

由于无法更改
b()
,因此无法将回调参数添加到
d()
(假设它首先接受了回调参数),也无法捕获
d()
(假设它首先返回了承诺)的返回值


我们无法判断
d()
完成后是否会触发DOM上的事件(或者即使您在有DOM的上下文中运行JS)。

我想我们需要更详细地了解这个问题。
d()
是否接受回调函数?
d()
是否返回可以链接到的承诺?您可以检查
回调
或首选选项
promise
如果
d
是异步的,我可以看出几乎异步的函数都使用回调函数。如果你能知道
d
做了什么,就更容易得到帮助。这可能会有帮助:异步调用到底是如何完成的?是使用SetInterval吗?我想我们需要更多关于这个问题的细节。
d()
是否接受回调函数?
d()
是否返回可以链接到的承诺?您可以检查
回调
或首选选项
promise
如果
d
是异步的,我可以看出几乎异步的函数都使用回调函数。如果你能知道
d
做了什么,就更容易得到帮助。这可能会有帮助:异步调用到底是如何完成的?它是否使用SetInterval?调用b时是否可以添加回调?@Tom-No。它不会将任何参数传递给
d()
调用b时是否可以添加回调?@Tom-No。它不会将任何参数传递给
d()