我有一个承诺链,第一个从API获取数据,第二个将数据插入数据库。在promise链中传递数据nodejs
我正在尝试将数据从第一个承诺传递给第二个承诺,但是它是通过未定义的。
这里是我的代码:
var getBalancePromise = function() {
var promise = new Promise(function(resolve, reject) {
poloniexExchange.getBalance({
account: 'all'
}, function(err, response) {
if (err)
console.log(err);
reject(err);
if (!err)
resolve(response); //response is an array
});
}).catch((err) => {
console.log('error');
})
return promise;
};
var updateBalancePromise = function(balanceArray) //balanceArray undefined. This should be the data from the first promise in the chain.
{
var promise = new Promise(function(resolve, reject) {
balanceArray.data.forEach(function(element) {
db.collection('balances').update({
currency: element.currency
}, {
$set: {
amount: element.amount,
shortname: element.shortName
}
}, {
upsert: true
});
});
resolve(true);
console.log('balances updated into database');
});
return promise;
};
getBalancePromise()
.then(updateBalancePromise);
如何更改我的代码从第一个承诺,承诺第二次传递数据?
您可以维护一个全局变量,并更新承诺成功的数据。在稍后调用第二个承诺时,请使用该变量。这会帮你吗? –