【发布时间】:2026-02-13 17:05:02
【问题描述】:
我知道已经有数十万个关于这个主题的线程,我已经研究这个问题几天了,但我仍然不明白如何应用我的例子'已经处理了我的案子。
我从这样的 API 调用开始:
const getReleaseUrl = (discogsId) => {
db.getRelease(discogsId, (err, data) => {
return data.uri
})
}
console.log(getReleaseUrl("53130"));
// => undefined
如何确保我的应用首先接收数据,防止 undefined 返回?我是否需要以某种方式确保 db 被定义并首先使用我的客户端 ID 连接到远程数据库?我是否需要编写一个函数以某种方式捕获undefined 结果并不断运行 API 调用,直到结果有所不同?设置超时似乎不是一个好的永久解决方案。我尝试编写这样的 Promise 链并得到 TypeError: db.getRelease(...).then is not a function 错误:
const getReleaseUrl = (discogsId) => {
db.getRelease(discogsId, (err, data) => {
return data
})
.then((data) => {
return data.uri
})
}
console.log(getReleaseUrl("53130"));
【问题讨论】:
-
无论天气如何,您最终都会使用回调、承诺或异步/等待,请阅读相关问题的答案以了解发生了什么:*.com/questions/17808651/return-function-javascript/…
-
@BrahmaDev 该线程是一个很好的资源,我在开始这个线程之前已经看过它,但是示例太宽泛了,我无法提出自己的解决方案
标签: javascript node.js asynchronous