[Aliフロントエンドの評価に関する質問] mergePromise関数を実装し、渡された配列を順番に実行して、返されたデータを配列(データ)に配置します

const timeout = ms => new Promise((resolve) => {
    setTimeout(() => {
      resolve();
    }, ms)
  });

  const ajax1 = () => timeout(1000).then(() => {
    console.log('1')
    return 1;
  });

  const ajax2 = () => timeout(1000).then(() => {
    console.log('2')
    return 2
  });

  const ajax3 = () => timeout(1000).then(() => {
    console.log('3')
    return 3
  });

  const mergePromise = ajaxArray => {
    let result = []
    let promise = Promise.resolve()
    ajaxArray.forEach(function (item) {
      promise = promise.then(item)
      result.push(promise)
    })
    return Promise.all(result)
  };

  mergePromise([ajax1, ajax2, ajax3]).then(data => {
    console.log('done')
    console.log(data) //[1,2,3]
  });

 

おすすめ

転載: blog.csdn.net/weixin_37719279/article/details/81123133