promise

58 阅读1分钟

await会暂停当前代码的执行,直到promise返回结果

  1. 异步函数中的错误未正确处理
    如果你在async函数(它隐式返回一个Promise)中遇到了错误但没有使用try...catch语句来捕获它,那么这个错误将不会被Promise的错误处理机制捕获(尽管它最终会导致返回的Promise被拒绝)。

    解决方法:在async函数中使用try...catch语句来捕获和处理错误。 2. 错误被忽略或未处理
    如果你在一个.then()回调函数中遇到了错误但没有处理它(即没有在这个回调函数中抛出错误或调用reject),并且没有在后续的.catch()中捕获这个错误,那么这个错误将会被忽略。

    解决方法:在每个.then()回调函数中处理可能的错误,或者使用.catch()方法来捕获和处理整个Promise链中的错误。 3. 未返回Promise
    如果你在一个应该返回Promise的函数中没有返回Promise(而是返回了其他值或没有返回值),并且在这个函数中进行了异步操作,那么在这个函数中抛出的错误将不会被Promise的错误处理机制捕获。

    解决方法:确保在需要返回Promise的函数中总是返回一个Promise对象。 服务端身份认证没通过,代码写错返回reject,promise类方法:then,catch,all

    Promise.all(形参是数组【里面可以是promise也可以是别的】,此时p1p2p3的返回值组成一个数组,传递给p的回调函数)