如何检索来自模块的数据,并将结果存储在变量中的NodeJS
问题描述:
我有此代码如何检索来自模块的数据,并将结果存储在变量中的NodeJS
TinyURL.shorten(idvar , function(res) {
console.log(res); //Returns a shorter version of http://google.com
})
缩短URL。我想要res的返回值并将其存储在一个变量中,以便我可以在其他地方使用结果。 我已经使用了
return res;
但它没有帮助我。 它与诺言有关吗? 如果是,请也请解释一下。
答
您可以“promisify”您的TinyURL.shortern
函数,例如
const shortenUrl = url => new Promise((resolve, reject) =>
TinyURL.shorten(url, (err, res) => err ? reject(err) : resolve(res))
);
然后你就可以利用async
/await
async someApi() {
try {
const shortened = await shortenUrl('http://google.com');
console.log(shortened);
} catch (e) {
console.error(e);
}
}
不'TinyURL.shorten'返回一个承诺?还是需要回调? – James
@james它返回的是较短的url版本,诺言没有提到 – Addictd
不是我的意思,如果你做'console.log(TinyURL.shorten(idvar))'(不提供回调),你会看到什么 – James