我从服务器获取响应后收到空对象

时间:2017-03-04 10:01:48

标签: javascript node.js promise

我使用以下代码从服务器发送数据:

app.get('/emails', function(req, res) {
var tablica_zadan = [];
   db.collection('emails').find({}).toArray(function(err,docs){
      docs.forEach(function(doc) {
        /*console.log('wypisz numery zadan' + doc.tresc);*/

        tablica_zadan.push(doc);

      });
      /*console.log(tablica_zadan);*/
      res.send(tablica_zadan);
    });

  });

})

在我的反应文件中,我使用代码获取它:

var docs = fetch('http://localhost:3000/emails')
    .then(function(response) {
        if (response.status >= 400) {
            throw new Error("Bad response from server");
        }

        return response.json();
    })
    .then(function(error) {
        console.log(error);
    });

console.log(docs instanceof Array);
console.log(docs);

当我想通过console.log(docs)打印文档时,它似乎是空的...... 我有消息:

Promise {[[PromiseStatus]]: "pending", [[PromiseValue]]: undefined}

我不知道如何改进它。请帮我。

1 个答案:

答案 0 :(得分:2)

docs将是Promise

要获得实际值,您需要执行以下操作...

docs.then(function(value) {
  console.log(value instanceof Array);
  console.log(value);
});