Skip to content

嵌套promise在析构时候会抛异常 #16

@Cirnoo

Description

@Cirnoo

test0.cpp中有如下示例

.then([&next](){
        output_func_name();
        next= newPromise([](Defer d) {
            output_func_name();
            //尝试调用d.resolve(1, 'c');
        });
        //尝试调用 next.resolve();,或next.resolve(1, 'c');
        //Will call next.resole() or next.reject() later
        //throw 33;
        //next.reject(55, 66);
        return next;
    })

如果增加next.resolve();或者d.resolve(); 会产生bad_any_cast异常,导致promiseHolder->state_ = TaskState::kRejected,在析构时会走到全局异常handler中。

我想通过创建一个新的newPromise的方式,内部切线程异步处理完成后再回调到下个then,这样看起来会有问题。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions