首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

有了承诺之后,没完成,需要处理

或者,可能站点一切正常,但响应不是有效JSON。...如果我们抛出一个.then处理程序,这意味着一个被拒绝承诺,因此控件跳转到最近错误处理程序。...在出现错误情况下,承诺拒绝,执行应该跳转到最近拒绝处理程序。但是没有。所以错误被“卡住”了。没有代码来处理它。 在实践中,就像代码中常规未处理错误一样,这意味着某些东西出现了严重错误。...类似的事情也会发生在未经处理拒绝承诺上。 JavaScript引擎会跟踪这种拒绝并在这种情况下生成一个全局错误。如果运行上面的示例,就可以在控制台中看到它。...如果发生了错误,但是没有.catch, unhandledrejection处理程序就会触发,并获取带有错误信息事件对象,因此我们可以做一些事情。

1.3K20

JavaScript 权威指南第七版(GPT 重译)(五)

承诺是表示异步计算结果对象。该结果可能已经准备好,也可能尚未准备好,承诺 API 故意对此保持模糊:没有同步获取承诺方法;您只能要求承诺在值准备好时调用回调函数。...调用者可以在这个承诺对象上注册一个或多个回调,当异步计算完成时,它们将被调用。 因此,在最简单层面上,承诺只是一种与回调一起工作不同方式。然而,使用它们有实际好处。...承诺在这里有所帮助,通过标准化处理错误方式,并提供一种让错误正确传播通过一系列承诺方法。 请注意,承诺代表单个异步计算未来结果。然而,它们不能用于表示重复异步计算。...如果多次调用 Promise 对象then()方法,每个指定函数都将在承诺计算完成时被调用。...在这种情况下,引发 TypeError c1 中代码导致 p2 被拒绝,并带有该 TypeError 对象。由于我们没有为 p2 指定错误处理程序,p3 也将被拒绝

24210
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    JavaScrip最容易犯十大错误及其避免方法()

    Uncaught TypeError: Cannot read property 如果你是一个javascript开发者,你肯定看到过此错误 读取属性或调用方法对象未定义 这可能由于许多原因而发生,...反过来,这意味着ItemList将项目定义为未定义,并且您在控制台中收到错误 - “Uncaught TypeError:无法读取未定义属性’map’”。 这很容易解决。...这相当于Chrome中错误“TypeError:’undefined’不是函数”。 是的,不同浏览器可以针对相同逻辑错误具有不同错误消息。...在这种情况下,应用程序将抛出“Uncaught TypeError无法设置未定义属性”。 10....即使没有Typescript,在使用它们之前使用guard子句来检查对象是否未定义也是有帮助

    16610

    来自1000多个项目的10大JavaScript错误浅析

    在Chrome里读取未定义对象属性或调用未定义对象方法时就会发生这个错误,在Chrome开发者控制台可以很容易地重现这个错误。...TypeError: ’undefined’ is not an object 在Safari里读取未定义对象属性或调用未定义对象方法时就会发生这个错误,在Safari开发者控制台可以很容易地重现这个错误...TypeError: Object doesn’t support property 在IE里读取未定义对象属性或调用未定义对象方法时就会发生这个错误,在IE开发者控制台可以很容易地重现这个错误。...ReferenceError: event is not defined 在访问一个未定义对象或超出当前作用域对象时就会发生这个错误,这个错误可以在Chrome开发者控制台重现。...如果在进行事件处理时遇到这个错误,请确保事件对象被作为参数传入到函数当中。旧浏览器(IE)提供了全局event变量,但并不是所有的浏览器都会这样。

    6.2K80

    手写系列-这一次,彻底搞懂 Promise

    ,状态修改是不可逆,当汉堡做好了,承诺兑现了,就不能再回到等待状态了。...总结一下,Promise 就是一个承诺承诺会给你一个处理结果,可能是成功,可能是失败,而返回结果之前,你可以同时做其他事情。...当 promise 完成,所有相应 onFulfilled 回调必须按照它们原始调用顺序执行 then; 当 promise 被拒绝,所有相应 onRejected 回调必须按照它们对 原始调用顺序执行...如果 x 是函数或对象 如果 x.then 是函数 执行 x.then 如果 x.then 不是函数 执行 resolve(x) 如果 x 不是函数或对象 执行 resolve(x) 代码如下: function...Promise.all方法可以接收一个promise数组作为参数,返回一个新promise对象,该对象在数组中所有promise都成功时才会被resolve。

    37430

    手写系列-这一次,彻底搞懂 Promise

    ,状态修改是不可逆,当汉堡做好了,承诺兑现了,就不能再回到等待状态了。...总结一下,Promise 就是一个承诺承诺会给你一个处理结果,可能是成功,可能是失败,而返回结果之前,你可以同时做其他事情。...当 promise 完成,所有相应 onFulfilled 回调必须按照它们原始调用顺序执行 then; 当 promise 被拒绝,所有相应 onRejected 回调必须按照它们对 原始调用顺序执行...如果 x 是函数或对象 如果 x.then 是函数 执行 x.then 如果 x.then 不是函数 执行 resolve(x) 如果 x 不是函数或对象 执行 resolve(x) 代码如下: function...Promise.all方法可以接收一个promise数组作为参数,返回一个新promise对象,该对象在数组中所有promise都成功时才会被resolve。

    20330

    你必须掌握 7 种 JavaScript 错误类型

    从浏览器控制台到运行Node.js计算机终端,我们到处都会看到错误。 这篇文章重点介绍了在JS开发过程中可能遇到 7 种错误类型。...can't find it 注意:未定义变量不会抛出ReferenceError,因为它存在于环境记录中只是它值尚未设置。...4.TypeError 类型错误 当其他NativeError对象中没有一个是失败原因适当指示时,TypeError用于指示操作失败。 对错误数据类型执行操作时会发生TypeError。...toUpperCase函数是有意通用; 它不需要其this值为String对象。 因此,可以将其转移到其他类型对象中用作方法。..."%"不是正确URI,因此引发了URIError。 如果对URI进行编码或解码有问题,则会引发URIError。 6.EvalErro 在使用全局eval()函数时,此函数用于识别错误。

    4.1K10

    javascript ES2020 已经来了

    可选链(Optional Chaining) 可选链语法允许你访问深度嵌套对象,而不用担心属性是否存在。在处理对象时,你肯定熟悉这样错误类型。...TypeError: Cannot read property of undefined 上述错误意味着你正试图访问一个未定义变量属性。为了避免这样错误,你代码写起来得像这样。...这些环境都有自己对象模型和不同语法来访问它。ES2020为我们带来了globalThis属性,无论你在哪里执行代码,该属性总是引用全局对象。...Promise.allSettled() 该方法返回一个promise,该Promise在所有给定promise被满足或拒绝后解析。它通常用于异步任务不依赖彼此成功完成情况,如下例所示。...'John' 当左边操作数未定义或为空时,该操作符将返回右手操作数。在上面的例子中,由于student.name未定义,该操作符将把name值设置为'John'。

    1.3K40

    7种你应该知道JavaScript常见错误

    从浏览器控制台到运行Node.js计算机终端,我们到处都会看到各类错误。 这篇文章重点是概述我们在JS开发过程中可能遇到错误类型。 1....当在记录中找到环境值并提取并返回值时,将以该变量名称作为关键字搜索环境记录。调用尚未定义函数。 现在,当我们创建或定义一个没有赋值变量时。...TypeError TypeError 是指对象用来表示值类型非预期类型时发生错误。例如,我们期望它是布尔值,但结果发现它是string类型。...toUpperCase函数是有意通用;它不需要其this值是String对象。因此,可以将其转移到其他种类对象中用作方法。...decodeURI("%") ^ URIError: URI malformed encodeURI,获取URI未编码版本。“%”不是正确URI,因此引发了URIError。

    2.6K10

    10 种 JavaScript 最常见错误

    当你读取一个未定义对象属性或调用其方法时,这个错误会在 Chrome 中出现。 您可以很容易在 Chrome 开发者控制台中进行测试。 ?...2、 TypeError: ‘undefined’ is not an object 这是在 Safari 中读取属性或调用未定义对象方法时发生错误。...3、 TypeError: null is not an object 这是在 Safari 中读取属性或调用空对象方法时发生错误。...5、 TypeError: Object doesn’t support property 这是您在调用未定义方法时发生在 IE 中错误。 您可以在 IE 开发者控制台中进行测试。 ?...如果在使用 event 时遇到此错误,请确保使用传入事件对象作为参数。像 IE 这样旧浏览器提供了一个全局变量事件,但并不是所有浏览器都支持。

    8.6K20

    10 种最常见 Javascript 错误

    当你读取一个未定义对象属性或调用其方法时,这个错误会在 Chrome 中出现。 您可以很容易在 Chrome 开发者控制台中进行测试(尝试)。 ?...TypeError: ‘undefined’ is not an object 这是在 Safari 中读取属性或调用未定义对象方法时发生错误。...TypeError: null is not an object 这是在 Safari 中读取属性或调用空对象方法时发生错误。...Uncaught TypeError: Cannot set property 当我们尝试访问一个未定义变量时,它总是返回 undefined,我们不能获取或设置任何未定义属性。...如果在使用事件处理系统时遇到此错误,请确保使用传入事件对象作为参数。像 IE 这样旧浏览器提供了一个全局变量事件,但并不是所有浏览器都支持。像 jQuery 这样库试图规范化这种行为。

    6.8K80

    JavaScript 错误处理大全【建议收藏】

    例如,如果我们用适当消息创建一个新 TypeError 对象,则 message 将携带实际错误字符串,而 name 则为 TypeError: const wrongType = TypeError...; throw null; 但是,最好不要这样做,应该总是抛出正确错误对象,而不是原始类型。 这样就可以通过代码库保持错误处理一致性。...Promise, error 和 throw 作为拒绝 Promise 最佳方法,提供错误对象很方便: Promise.reject(TypeError("Wrong type given, expected...如果传递给 Promise.any Promise 不是都被拒绝,则产生错误是 AggregateError。...如果拒绝 Promise 不是第一个出现在输入数组中对象,则 Promise.race 解析: const promise1 = Promise.resolve("The first!")

    6.3K50

    1000个项目中前10名JavaScript错误介绍

    当你读取一个未定义对象属性或调用其方法时,这个错误会在 Chrome 中出现。 您可以很容易在 Chrome 开发者控制台中进行测试(尝试)。...TypeError: ‘undefined’ is not an object 这是在 Safari 中读取属性或调用未定义对象方法时发生错误。...TypeError: null is not an object 这是在 Safari 中读取属性或调用空对象方法时发生错误。...Uncaught TypeError: Cannot set property 当我们尝试访问一个未定义变量时,它总是返回 undefined,我们不能获取或设置任何未定义属性。...如果在使用事件处理系统时遇到此错误,请确保使用传入事件对象作为参数。像 IE 这样旧浏览器提供了一个全局变量事件,但并不是所有浏览器都支持。像 jQuery 这样库试图规范化这种行为。

    6.2K10

    【JS】2030- 通过可视化彻底搞懂 Promise执行逻辑

    这里异步行为与 setTimeout 有关,与 promise 无关。我在这里展示这个是为了展示承诺常见用法 —— 在一些延迟后解决一个 promise。...然而,延迟本身并不是由 promise 引起。promise 被设计为与异步操作一起工作,但这些异步操作可以来自不同来源,如定时器或网络请求。...then [[PromiseResult]] 被设置为计算结果,这个结果又被下一个 then 处理程序使用。 最终,结果被记录下来。...由于我们没有显式地返回一个值,所以最后一个 then promise [[PromiseResult]] 是未定义,这意味着它隐式地返回了未定义值。 当然,使用数字并不是最现实场景。...如果您有兴趣了解更多,async/await 语法(承诺语法糖)等其他特性以及 Async Generators(异步生成器)等特性将为异步代码使用提供更多方法。

    20410

    实现Promise原型方法--前端面试能力提升

    如果可迭代对象中没有一个 promise 成功(即所有的 promises 都失败/拒绝),就返回一个失败 promise 和AggregateError类型实例,它是 Error 一个子类,用于把单一错误集合在一起...promise解决或拒绝,返回 promise就会解决或拒绝。...一个待定 Promise 只要给定迭代中一个promise解决或拒绝,就采用第一个promise值作为它返回值,从而异步地解析或拒绝(一旦堆栈为空)。...如果迭代包含一个或多个非承诺值和/或已解决/拒绝承诺,则 Promise.race 将解析为迭代中找到第一个值。.../或已解决/拒绝承诺, * 则 Promise.race 将解析为迭代中找到第一个值。

    65130

    1000多个项目中十大JavaScript错误以及如何避免

    当你读取一个属性或调用一个未定义对象方法时,Chrome 中就会报出这样错误。 ? 导致这个错误发生原因有很多,常见一种情况是在渲染 UI 组件时,不正确地初始化状态。...这是在 Safari 中读取属性或调用未定义对象方法时发生错误,这与 Chrome 上述错误基本相同,只是 Safari 使用不同错误消息。 ? 3....TypeError: Object Doesn’t Support Property 当调用未定义方法时,IE 中会发生这样错误。 ?...TypeError: ‘undefined’ Is Not a Function 当调用未定义函数时,Chrome 中就会发生这样错误。 ?...TypeError: Cannot Read Property ‘length’ 这是 Chrome 中发生错误,因为读取了未定义长度属性变量。 ?

    8.3K40
    领券