如何在Node.js中解决Promise {<pending>}?

时间:2019-07-05 06:53:16

标签: node.js promise

目前,我正在处理两个文件。 index.js和index.main.js

对于Node.js仍然是新手,而我正在为这个未决的希望问题而烦恼。我的函数工作正常,我可以使用.then()来console.log记录值,但是当我尝试console.log函数时,会得到未决的承诺。

我尝试添加一个promise语句和一个回调,但是由于缺乏了解,我无法找到解决方案。该函数在index.js中调用。下面是我的以下代码:

//this is in index.main.js
module.exports.getName = async function getName(newtf) {
  const {Storage} = require('@google-cloud/storage');
  const storage = new Storage();
  const bucketName = 'probizmy';
  const [files] = await storage.bucket(bucketName).getFiles();
  files.forEach(file => {
    newtf = file.name;
    //console.log(`-----`+file.name);
  });
  return await newtf; //the value that I want to output
}

下面的代码是我希望输出的位置。

//this is in index.js
const a = require('./index.main.js');
console.log(a.getName()); // output is Promise { <pending> }
a.getName().then( newtf => { console.log(newtf) } //output is the filename

我想做的是代替使用

a.getName().then( newtf => { console.log(newtf) }

我要使用

a.getName()

显示该值,以便我可以在例如

的示例中使用它

console.log("The file name is: +a.getName());

希望对此事有所投入。预先谢谢你:)

0 个答案:

没有答案