Javascript 使用promise减少API调用

Javascript 使用promise减少API调用,javascript,promise,Javascript,Promise,我正在进行下面的调用,它接受一个令牌并进行一个API调用并返回另一个令牌 export default (token, id) => { if (map[id]) { return Promise.resolve(map[id]?.token); } axios .post( `https://**********`, { id }, { headers: { Authorization:

我正在进行下面的调用,它接受一个令牌并进行一个API调用并返回另一个令牌

export default (token, id) => {
  if (map[id]) {
    return Promise.resolve(map[id]?.token);
  }
  axios
    .post(
      `https://**********`,
      { id },
      {
        headers: {
          Authorization: `Bearer ${token}`
        }
      }
    )
    .then(response => {
      const { token } = response;
      map[id] = {
        ...response,
      };
      return token;
    });
};
这是我第一次有5-10个API调用这个方法,这个方法会进行单独的令牌API调用,因为在第一个时刻映射中没有设置任何内容。
因此,在设置映射之前,将进行单独的令牌调用。我想减少令牌API调用的数量,即让所有API调用等待,直到第一个令牌API调用得到响应并在映射中设置它。

将承诺存储在映射中:

 if(!map[id])
   map[id] = axios.post(/*...*/).then(/*...*/);
 return map[id];
const-token=(等待axios.post(…).data。当前
返回令牌
将令牌返回到。。。什么都没有(除了“then”回调,它不做任何事情)
if(map[id])
您返回一些内容,否则不返回任何内容。