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()