目前,当我在运行“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)
答案 0 :(得分:1)
当你收到承诺时,这意味着你将获得一个价值"之后"即所有同步代码完成运行后。访问Promise提供的值的方法是使用.then
函数。
moneymoney.then(function(result) {
console.log(result);
// Add your code for using the result of `okay.findOneProblem(263)` here
});