gpt4 book ai didi

javascript - 如何使异步 API 工作?

转载 作者:太空宇宙 更新时间:2023-11-04 00:31:27 25 4
gpt4 key购买 nike

我目前正在为我的机构开发一个应用程序,并遇到了以下问题。我想允许用户检查数据库中的一些内容(当前使用 firebase)。由于我必须从外部服务器检查一些内容,因此我设置了一个 node.js 服务器来发送更改通知。我想使用此服务器作为 Firebase 和应用程序之间的链接,以满足更复杂的要求。

对于我的 Node 服务器和应用程序之间的网关,我使用了 Express...我设置了基本的东西,但出现了以下问题,我不知道如何解决这个问题...

例如,我打开 API 来登录用户帐户,因此我向服务器发送包含用户名和身份验证 token 的请求。但现在问题出现了。由于服务器必须从 Firebase 检查它,因此我无法对该值执行任何操作,因为我不知道何时获得它,而且我也不知道如何使用异步执行此操作。

如果有人知道如何做到这一点,那对我真的很有帮助。如果上面的场景让这里的一个简单的事情变得困惑:

当我收到请求(快速)时,如何从 Firebase 发送一个值...并在该值已加载时发送一个请求?

如有必要,我愿意更改数据库,例如更改为 MongoDB 或其他有帮助的数据库。

最佳答案

此类问题的一般解决方案如下:

app.post('/login', function (req, res) {
makeAsyncCall('some arguments...', function (err, data) {
if (err) {
// you have error, send an appropriate error
// to the client with `res.send`
} else {
// you have `data`, check it and use `res.send`
// to send response to the client
}
});
});

因此,在处理程序内部,您运行一个接受回调的异步函数,并在该回调中创建对原始 HTTP 请求的响应。

makeAsyncCall 可以是对其他服务器或数据库查询或其他任何内容的另一个 HTTP 请求。甚至可能是超时:

app.get('/delay', function (req, res) {
setTimeout(function () {
req.send('Done');
});
}, 3000);

在内部回调中,您仍然可以访问定义它们的外部函数的参数 - 特别是 reqres 对象。

关于javascript - 如何使异步 API 工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40805654/

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