切换场景时如何中止 promise 防止执行为null

求教!!!
切换场景时如何中止 promise 防止执行为null,中止promise的执行有什么好的方法吗

protected readonly asyncToken: AsyncToken = { cancel: function () { } }
    /**
     * 执行一个异步方法 随时可已中断
     * @param asyncFunc 要执行的异步方法
     * @param args 可变参数
     */
    async runAsync(asyncFunc: Function, ...params: any) {
        let cancelled = false
        this.asyncToken.cancel = () => {
            cancelled = true
        }
        const data = await wrapWithCancel(asyncFunc)(...params)
        if (cancelled) {
            throw { reason: '中断异步执行' }
        }
        return data
        function wrapWithCancel(fn): any {
            return data => {
                if (!cancelled) {
                    return fn(...params)
                }
            }
        }
    }

用这个封装一下 想要中断的时候调用 asyncToken.cancel 就行了

一个思路为,可以不终止Promise,只在Promise执行完毕的时候,检查是否还需要执行Promise的then/catch逻辑。比如 then 之后,检查场景是否还存在,如果存在就更新场景Label

谢谢了!我试试看

谢谢提供思路!