一个被函数封装的Promise chain如何return 一个成功状态的Promise对象

代码如下

f1是一个函数,我想在最后一个then 返回一个success的reslove 这个该如何操作?如果代码是以下的,那在调用这个函数的.then()的时候是报错的

            function f1() {
                promise.then(data => {
                    //doSth
                }).promise.then(data => {
                    //doSth
                }).promise.then(data => {
                    return new Promise((reslove, reject) => {
                        reslove('success');
                    })
                })
            }
阅读 4k
1 个回答

要么,你的 f1() 返回一个 Promise,要么,使用回调

返回 Promise 的情况,你直接在最前面加个 return 就解决了。

function f1() {
    // const promise = new Promise(resolve => resolve("OK"));

    return promise.then(data => {
        // console.log(1, data);
        // return data;
    }).then(data => {
        // console.log(2, data);
        // return data;
    }).then(data => {
        // console.log(3, data);
        return new Promise((reslove, reject) => {
            reslove("success");
        });
    });
}

f1().then(data => console.log(data));

如果 callback,也简单,最后一个 Promise 都可以不要了

function f1(callback) {
    // callback = typeof (callback === "function") ? callback : () => { };
    // const promise = new Promise(resolve => resolve("OK"));

    promise.then(data => {
        // console.log(1, data);
        // return data;
    }).then(data => {
        // console.log(2, data);
        // return data;
    }).then(data => {
        // console.log(3, data);
        new Promise((reslove, reject) => {
            callback("success");
        });
    });
}

f1(data => console.log(data));

代码里的注释打开你就看得到效果

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