promessa.todos dentro de um loop forEach - tudo disparando de uma só vez

Em um aplicativo Node, preciso percorrer alguns itens de maneira síncrona, mas algumas das operações dentro do loop são assíncronas. Meu código agora está assim:

someAPIpromise().then((items) => {
   items.forEach((item) => {
      Promise.all[myPromiseA(item), myPromiseB(item)]).then(() => {
         doSomethingSynchronouslyThatTakesAWhile();
      });
    }
}

Isso faz maravilhas quando oitems é uma matriz de 1. Mas, quando houver mais de um item,promise.all() será acionado instantaneamente para todos os itens da matriz, sem aguardar o término da operação no loop.

Tudo isso para dizer ... como posso garantir que toda a operação de cada item na matriz seja executada de forma síncrona (mesmo que algumas operações sejam assíncronas e retornem uma promessa)?

Muito obrigado!

N