需要一些关于Promise的帮助,为什么resolve不能在这个if语句中工作?
async getTrades() {
return new Promise(function (resolve, reject) {
if (this.exchange === 'GDAX') {
resolve('fake')
console.log('inside GDAX')
}
}.bind(this))
}
如果我把解决方案放在if语句之外(之前或之后),它就可以工作。而且console.log('inside GDAX')
确实触发了,所以this.exchange ==='GDAX'
返回true。
这是调用它的函数:
getHistoricalPortfolioReturn() {
return new Promise(function (resolve, reject) {
var exchange_trades_calls = []
for (var exchange_account in this.exchange_accounts) {
if (this.exchange_accounts.hasOwnProperty(exchange_account)) {
exchange_trades_calls.push(this.exchange_accounts[exchange_account].getTrades())
}
}
Promise.all(exchange_trades_calls)
.then(function (trades) {
console.log('resolved')
console.log('trades: ' + trades)
resolve(trades)
})
.catch(function (error) {
console.error('error: ' + error)
})
}.bind(this))
}
resolve('fake')
和console.log
的顺序。 - Jaydip Jadhavthen
进行链接? - Andrew Liresolve
函数放在 if 语句外面,它就能解决问题,但我认为这并不重要。 - JBaczuk