我可以帮您进行翻译。以下是需要翻译的内容:
这是一个简化版本,但基本上我只是从Steam API请求信息。两个变量都可以打印出所有数据,没有任何问题,但一旦进行下面的重构,情况就会改变。
重构后:
一旦我整理好所有的变量,我希望返回一个数组。然而,一旦执行,我会在控制台上看到这个输出。
任何想法为什么重构后它会打印出“promise pending”?在原始版本中,它可以完美地打印出所有内容。
我在处理 promise 错误时遇到了一些问题。最初我的函数就是这样设置的,一切都很顺利,没有任何问题。
原始代码:
const request = require("request-promise");
async () => {
const URL_HIDDEN = "...";
let info = await request(URL_HIDDEN);
info = JSON.parse(info).response.players[0];
let playtime = await request(URL_HIDDEN);
playtime = JSON.parse(playtime).response.games;
console.log(info);
console.log(playtime);
}
这是一个简化版本,但基本上我只是从Steam API请求信息。两个变量都可以打印出所有数据,没有任何问题,但一旦进行下面的重构,情况就会改变。
重构后:
const middleware = require("../middleware");
async () => {
const URL_HIDDEN = "...";
let requests = middleware.requestURI(URL_HIDDEN);
console.log(requests);
}
我开始把所有的请求处理都放在一个单独的函数和文件中。
const request = require("request-promise");
middlewareObj.requestURI = async (URL_HIDDEN) => {
console.log("1");
let info = await request(URL_HIDDEN);
info = JSON.parse(info).response.players[0];
console.log("2");
let playtime = await request(URL_HIDDEN);
playtime = JSON.parse(playtime).response.games;
console.log("3");
return [{ info }, { playtime }];
};
一旦我整理好所有的变量,我希望返回一个数组。然而,一旦执行,我会在控制台上看到这个输出。
1
Promise { <pending> }
2
3
任何想法为什么重构后它会打印出“promise pending”?在原始版本中,它可以完美地打印出所有内容。
requestURI
是异步的,当执行console.log(requests)
时还没有完成。 - Ivan