【发布时间】:2019-02-06 18:25:20
【问题描述】:
我的问题是:尽管我使用了 async/await,但为什么这个日志“promise {pending}”?我检查了类似的问题和答案,似乎应该没问题,但事实并非如此。我如何改变它以获得结果,为什么?谢谢。
const rp = require('request-promise-native');
async function sampleFunc() {
let sample = await rp({
uri: 'http://google.com',
jar: true
});
return sample;
}
async function f() {
return await sampleFunc();
}
console.log( f());
【问题讨论】:
-
也许你想做的是打电话给
await getLastPage();,然后再打电话给return? -
在有这么多外部依赖项的情况下很难重现这一点。
uri有什么价值? Cheerio 真的需要重现问题吗?还是整个搜索?如果无法访问您的计算机,我就无法真正运行您的代码,这使调试变得不必要地复杂。 -
@JörgWMittag 提出了一个很好的观点,Andrei - 你能写一个不考虑所有依赖关系的MCVE 吗?它会让你更容易帮助到你!
-
@JörgWMittag,URI 没问题,因为它工作正常,使用承诺链,而不是异步/等待。 URI是:“spb.hh.ru/search/vacancy?text=node.js&area=2&page=0”,我也在主帖里改了。
-
1) 我并不是说这部分代码有问题。但它阻止我运行代码,这意味着我无法观察发生了什么并对其进行调试。 2)如果那部分代码没问题,那么它不可能与您的问题中的问题有任何关系,并且只是一个无用的分心,甚至不应该出现在问题中。
标签: javascript node.js async-await es6-promise