关于await顺序和其后面的代码


这个代码await a后面的代码为什么不执行了
```javascript
let a;
const b = new Promise((resolve, reject) => {
  console.log('promise1');
  resolve();
}).then(() => {
  console.log('promise2');
}).then(() => {
  console.log('promise3');
}).then(() => {
  console.log('promise4');
});

a = new Promise(async (resolve, reject) => {
  console.log(a);
  await b;
  console.log(a);
  console.log('after1');
  await a
  resolve(true);
  console.log('after2');
});

console.log('end');
```javascript

```

await a 和 resolve(true); 换一下位置即可,是因为 await a,迟迟没有等到resolve,处于pending阶段