【发布时间】:2018-08-19 08:11:08
【问题描述】:
我是 Nodejs 新手,第一次处理 Promise,所以现在的上下文是当我尝试返回 Promise 时,它显示状态 Promise 。如何解决它,谁能指导我完成这个?
这是我正在调用将返回一个承诺的函数的代码。粗线显示我想要返回该承诺并存储在对象中的位置。
for(let i = 0; i<responseArray.length; i++){
let dollar = {
amount : 0
};
if(i == 1){
continue;
}
dollar.amount = **currenciesService.getCurrencyLatestInfo(responseArray[i].currency);**
dollarAmount.push(dollar);
}
console.log("$", dollarAmount);
这是一个返回承诺的代码。
const getCurrencyLatestInfo = function(currency) {
return new Promise(function(resolve, reject) {
request('https://min-api.cryptocompare.com/data/price?fsym='+currency+'&tsyms='+currency+',USD', { json: true }, (err, res, body) =>
{
if (err) {
reject(err);
} else {
var result= body;
resolve(result);
console.log("RESULT: ",result.USD);
}
});
})
}
【问题讨论】:
-
输出如下: [ { amount: Promise {
} }, { amount: Promise { } }, { amount: Promise { } }, { amount: Promise { } }, { amount: Promise { } }, { amount: Promise { } }, { amount: Promise { } }, { amount: Promise { } } ,{金额:承诺{ }},{金额:承诺{ }},{金额:承诺{ }},{金额:承诺{ }}] -
很明显返回一个promise会导致调用函数收到一个promise,不是吗?我的意思是,如果你返回
true,调用函数就会得到true,等等。无论如何,要获得一个promise的resolved值,需要使用promise的.then方法。 -
承诺尚未兑现。您需要等待
amount承诺兑现.then()或await在使用它的价值之前... developers.google.com/web/fundamentals/primers/…
标签: javascript node.js promise