Javascript 遍历列表并进行顺序网络调用

Javascript 遍历列表并进行顺序网络调用,javascript,node.js,aws-lambda,Javascript,Node.js,Aws Lambda,如何使用sdk遍历列表并进行顺序网络调用? 我正在尝试使用Coinbase的NodeSDK,获取所有帐户的前10个事务 我有一个帐户列表,我遍历它们并调用client.account、client.transactions和client.transactions(分页)。我将结果添加到一个事务数组并返回该数组 我无法让它与异步/等待或请求承诺一起工作。 有什么想法吗 通过使用async/await和Promissions解决了这个问题。等待coinbase方法不会起作用,因为它们不是异步函数(

如何使用sdk遍历列表并进行顺序网络调用? 我正在尝试使用Coinbase的NodeSDK,获取所有帐户的前10个事务

我有一个帐户列表,我遍历它们并调用client.account、client.transactions和client.transactions(分页)。我将结果添加到一个事务数组并返回该数组

我无法让它与异步/等待或请求承诺一起工作。 有什么想法吗


通过使用async/await和Promissions解决了这个问题。等待coinbase方法不会起作用,因为它们不是异步函数(令人惊讶!)


请添加一些您已经尝试过的代码
var rp = require('request-promise');
var coinbase = require('coinbase');
var client = new coinbase.Client({ 'apiKey': 'keyStuff', 'apiSecret': 'secretStuff' });
var accountList = ['acct1','acct2','acct3',];
var transactionList = [];


try {
        let ps = [];
        accountList.forEach(acctId => {
            var account = client.getAccount(accountId, null);
            ps.push(rp(account));
        });
        Promise.all(ps)
            .then(responses => {
                for (var i = 0; i < responses.length; i++) {
                    var result = responses[i];
                    rp(result.account.getTransactions(null))
                        .then(res => {
                            res.pagination = 10;
                            return rp(result.account.getTransactions(null, res.pagination));
                        }).catch(err => console.log(err))
                        .then(txns => {
                            try {
                                if (txns.length > 0) {
                                    txns.forEach(function(txn) {
                                            var transaction = {
                                                "trade_type": "",
                                                "price": ""
                                            };
                                            transaction.trade_type = txn.type;
                                            transaction.price = txn.native_amount.amount;
                                            transactionList.push(transaction);
                                    });
                                }
                            }
                            catch (err) {
                                console.log(err);
                            }
                        });
                }

            }).catch(err => console.log(err));
        return transactionList;

        //-------------------------------------------------------------------

        // if (accountList.length > 0) {

        //     for (let acctId of accountList) {
        //         console.log("account id: " + acctId);
        //         await delayTransactions(acctId);
        //     }

        //     console.log("got here last");
        //     return transactionList;
        // }
    }
    catch (error) {
        console.log(error);
    }
await client.getAccount(accountId, async function(err, account) {
if (err) {
    console.log(err);
}
else {
    await account.getTransactions(null, async function(err, txns, pagination) {
.
.
.
function delayedMethod() {
    new Promise(resolve => {
    client.getAccount(accountId, async function(err, account) {
    if (err) {
        console.log(err);
    }
    else {
        account.getTransactions(null, async function(err, txns, pagination) {
    .
    .
    .
    resolve();
    });
}