我正在尝试链接一个将接受输入的promise,附加到输入,在最终解析Promise之前传回结果。代码执行,我添加了一些console.log所以我知道_add24h的值被追加但似乎.then没有传递给主Promise,因为它最终解析为初始值。
我的Promise.all在代码的其他地方传递了值,但不包含来自.then的数据
module
答案 0 :(得分:0)
如果您要在回调之外解决secon承诺,那么即使在binance.prevDay(coin + 'USDT',...)
运行之前它实际上已得到解决。
因此,您需要按照以下方式更改通话,并在回调中附上解决方案
promise2 = new Promise((resolve,reject) => {
binance.prevDay(coin + `BTC`, (error, prevDay, symbol) => {
for (var obj in prevDay) {
if (obj.includes("priceChange")) {
_add24h["24h Change"] = `\u0E3F` + prevDay[obj];
}
}
resolve(_add24h);
})
})
.then(function(_add24h) {
return new Promise ((resolve,reject) => {
binance.prevDay(coin + `USDT`, (error, prevDay, symbol) => {
for (var obj in prevDay) {
if (obj.includes("priceChange")) {
_add24h["24h Change"] = _add24h["24h Change"] + "\n$" + parseFloat(prevDay[obj]).toFixed(2);
}
}
resolve(_add24h);
})
})
})