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 })
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题