mergePromise(...)。那么不是一个函数

时间:2018-07-26 03:21:51

标签: javascript

运行代码时,我得到了错误

  

mergePromise(...)。那么它不是一个函数。

我想知道为什么会出现此错误。

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

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

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

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

const mergePromise = ajaxArray => {
    const data=[];
    ajaxArray[0]().then(i=>data.push(i));
    timeout(1005).then(() => {
        ajaxArray[1]().then(i=>data.push(i));
    });
    timeout(10).then(() => {
        ajaxArray[2]().then(i=>data.push(i));
    });
    return data;
};

我想也许超时功能有一些错误。我在做什么错了?

1 个答案:

答案 0 :(得分:0)

也许您可以尝试使用return Promise.resolve(data),它将返回您所需要的承诺。