promise 如何将第一个then得到的结果传递到最后

例如:

var arr = [];

var pro = (val) => {
    return new Promise((resolve, reject) => {
        if (true) {
            return resolve(arr.push(val));
        }
    })
}
pro(2).then((val) => {
    console.log(val);
    return pro(4);
}).then((val) => {
    return pro(236);
}).then((val) => {
    console.log(arr)
})

这种怎么封装成一个promise

阅读 5.4k
2 个回答

这也是一种方法

pro(2).then((val) => {
    console.log(val);
    return {a:pro(4),b:val};
}).then((val) => {
    val.c = pro(236)
    return val;
}).then((val) => {
    console.log(arr,val)

如果可以的话,还是用async函数比较方便。 或者是

const result = {}
promise1.then((result1)=>{result.result1 = result1;return promise2 })
推荐问题