取消嵌套的Promise会发出警告:“已释放待处理的Promise”

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了取消嵌套的Promise会发出警告:“已释放待处理的Promise”相关的知识,希望对你有一定的参考价值。

我有以下代码段向我发出警告:取消基础任务时,“ pending promise释放”。

func pingGoogle() -> Promise<Void> 
    Promise  seal in
        firstly 
            URLSession.shared.dataTask(.promise, with: URLRequest(url: URL(string: "https://google.com")!))
        .done  _ in
            seal.fulfill_()
        .catch 
            seal.reject($0)
        
    


pingGoogle()
URLSession.shared.getAllTasks  tasks in tasks.forEach  $0.cancel()  

我不确定为什么会发生这种情况,也不知道如何解决。有更多经验的人可以指出我正确的方向吗?

非常感谢您的帮助,谢谢!

答案

发现错误。因为默认情况下任务已取消,并且.catch不会捕获取消错误,所以我的Promise被重新分配而从未被拒绝。

以上是关于取消嵌套的Promise会发出警告:“已释放待处理的Promise”的主要内容,如果未能解决你的问题,请参考以下文章

深入浅出:promise的各种用法

Google Cloud Functions - 警告避免嵌套承诺承诺/不嵌套

VS2017仅我的代码警告

promise

展平/取消展平嵌套 JSON 对象的最快方法

在已卸载的组件中发出有关setState的警告