[英]async/await in for loop javascript.
total_arr={}
total=0
data={"a":1,"b":2,"c":3}
const Binance = require('node-binance-api');
const binance = new Binance().options({
APIKEY: '<key>',
APISECRET: '<secret>'
});
async function trigger(){
async function trig() {
for (keys in data){
var x= await binance.futuresMarketBuy( 'BNBUSDT', data[keys] )
var x2= await binance.futuresMarketBuy( 'BTCUSDT', x )
total_arr["buy"+keys]=x+x2;
}
}
async function trig2() {
var y =await binance.futuresMarketSell( 'BNBUSDT', data[keys] )
var y2= await binance.futuresMarketSell( 'BTCUSDT', y )
total_arr["sell"+keys]=y;
}
async function trigger(){
for (keys in data){
await trig(); /*I want to run trig() and trig2() asynchronously */
await trig2();
}
for (iterat in data) await {
total=total+data[iterat] /*AFTER trig() and trig2() have COMPLETELY run in for loop, I want
to add them up this way*/
}
console.log(total)
}
}
trigger();
I want to run trig() and trig2() asynchronously but it still runs sequentially despite using async/await.我想异步运行 trig() 和 trig2() 但尽管使用了 async/await,它仍然按顺序运行。 What am I doing wrong ?我究竟做错了什么 ? . . Please help.请帮忙。 I have experimented with code many times but it still runs sequentially.我已经多次尝试代码,但它仍然按顺序运行。 Please Help.请帮忙。
See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/all .请参阅https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/all 。
await Promise.all([trig(), trig2()])
It's hard to tell for certain what you're trying to do, but I think this is closer:很难确定您要做什么,但我认为这更接近:
const Binance = require('node-binance-api');
const total_arr = {};
let total = 0;
const data = {"a" : 1, "b" : 2, "c" : 3};
const binance =
new Binance().options({APIKEY : '<key>', APISECRET : '<secret>'});
async function buy() {
for (const key in data) {
var x = await binance.futuresMarketBuy('BNBUSDT', data[key]);
var x2 = await binance.futuresMarketBuy('BTCUSDT', x);
total_arr["buy" + key] = x + x2;
}
}
async function sell() {
for (const key in data) {
var y = await binance.futuresMarketSell('BNBUSDT', data[key]);
var y2 = await binance.futuresMarketSell('BTCUSDT', y);
total_arr["sell" + key] = y;
}
}
async function main() {
await Promise.all([ buy(), sell() ]);
for (const key in data) {
total = total + data[key];
}
console.log(total);
}
main();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.