async问题,JS Promise无法返回结果,但与console.log一起使用

时间:2016-05-12 18:51:34

标签: javascript node.js asynchronous promise

目前,当我在运行“node jkl.js”时在我的“exports.findOneProblem”中使用console.log(result)时,它可以正常工作。我能看到结果。但是,当我使用return而不是console.log()时,我得到的只是控制台中的Promise {pending}。请填补空白....学习如何使用承诺,谢谢。

 //asd.js

    exports.findOneProblem = function(problemId) {
          return RClient.authenticate(options).then(function (client) {
            const Problem = client.Problem;

            return Problem.findOne(problemId)
          }).then(function(result){
              return result
          });
        };

第二个文件:jkl.js

var okay = require('./asd');

var moneymoney = okay.findOneProblem(263)

console.log(moneymoney)


var honeyhoney = moneymoney.then(function(result){
  return result
})
console.log(honeyhoney)

1 个答案:

答案 0 :(得分:1)

当你收到承诺时,这意味着你将获得一个价值"之后"即所有同步代码完成运行后。访问Promise提供的值的方法是使用.then函数。

moneymoney.then(function(result) {
  console.log(result);
  // Add your code for using the result of `okay.findOneProblem(263)` here
});