gpt4 book ai didi

javascript - 如何让promise.response返回API的响应?

转载 作者:行者123 更新时间:2023-12-01 00:56:09 25 4
gpt4 key购买 nike

TLDR:我的 Promise.response 需要在 API 调用和 Promise 中调用。

我正在尝试通过简单 Express.js 服务器的 Promise 从 API 调用中获取返回值。

这似乎是一个有很多问题的话题,但我还没有成功地适应这种情况的实现。我也尝试过:

  • 将 API 调用放在resolve() 中
  • 异步/等待实现(愿意重新访问)

这是相关代码的基本结构。在可能出现问题的部分上方有一条评论。

promise

const externalModule = require('<route to module>');

let promise = new Promise(function(resolve,reject) {
// This is probably where the problem is
let returnValue = externalModule.apiCall(parameters);
resolve(returnValue);
});

promise.then(function(returnValue) {
console.log(returnValue);
});

外部模块

module.exports = {
apiCall: function(parameters) {
apiCall(
parameters,
function(err, response) {
if (err) {
console.error(err);
return;
} else {
console.log("success");
return response
}
}
)
}
};

如果代码正常工作,我们会看到两个字符串。一个来自 API 调用内部(“成功”),另一个来自其返回值。因为 undefined 出现在“success”之前,所以我们知道在上面的函数返回之前,resolve 函数已经触发。

来自 Shell 的日志

> undefined
> "success"

最佳答案

您没有提供使用 api 调用响应的方法。将该 promise 转换为 promise ,然后使用它。

module.exports = {
apiCall: function(parameters) {
return new Promise((res, rej) => {
apiCall(
parameters,
function(err, response) {
if (err) {
rej(err);
} else {
res(response);
}
}
)
});
}
};

然后像这样使用它

let promise = externalModule.apiCall(parameters);

关于javascript - 如何让promise.response返回API的响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56567065/

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