gpt4 book ai didi

javascript - 阻止 javascript 函数 (node.js)

转载 作者:行者123 更新时间:2023-11-30 08:03:25 25 4
gpt4 key购买 nike

我有这个代码:

var resources = myFunc();
myFunc2(resources);

问题是 JavaScript 异步调用 myFunc(),然后调用 myFunc2(),但我没有 myFunc()< 的结果还没有。

有没有办法阻止第一次调用?或者有什么方法可以让它发挥作用?

最佳答案

此代码不起作用的原因代表了异步 javascript 的优点和缺陷。它不起作用,因为它不应该起作用。

当第一行代码被执行时,你基本上已经告诉 Node 去做一些事情并在完成时通知你。然后它继续执行下一行代码——这就是为什么当你到达这里时还没有响应的原因。有关这方面的更多信息,我会研究 event-loop更详细。它有点抽象,但它可能会帮助您了解 Node 中的控制流。

这就是回调的用武之地。回调基本上是您传递给另一个函数的函数,该函数将在第二个函数完成时执行。回调的常用签名是 (err, response)。这使您能够检查错误并相应地处理它们。

//define first
var first = function ( callback ) {
//This function would do something, then
// when it is done, you callback
// if no error, hand in null
callback(err, res);
};

//Then this is how we call it
first ( function (err, res) {
if ( err ) { return handleError(err); }

//Otherwise do your thing
second(res)
});

如您所想,这会很快变得复杂。以许多嵌套回调结束的情况并不少见,这会使您的代码难以阅读和调试。

额外的:

如果您发现自己处于这种情况,我会查看 async图书馆。这是一个很棒的tutorial关于如何使用它。

关于javascript - 阻止 javascript 函数 (node.js),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22466960/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com