2017-11-11 93 views
0

我有此代码如何检索来自模块的数据,并将结果存储在变量中的NodeJS

 TinyURL.shorten(idvar , function(res) { 
      console.log(res);  //Returns a shorter version of http://google.com 
     }) 

缩短URL。我想要res的返回值并将其存储在一个变量中,以便我可以在其他地方使用结果。 我已经使用了

return res; 

但它没有帮助我。 它与诺言有关吗? 如果是,请也请解释一下。

+0

不'TinyURL.shorten'返回一个承诺?还是需要回调? – James

+0

@james它返回的是较短的url版本,诺言没有提到 – Addictd

+0

不是我的意思,如果你做'console.log(TinyURL.shorten(idvar))'(不提供回调),你会看到什么 – James

回答

0

您可以“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); 
    } 
} 
相关问题