首页
学习
活动
专区
圈层
工具
发布

前端测试题:关于Promise对象的状态,下列说法错误的是?

考核内容:Promise对象的作用 题发散度: ★★★ 试题难度: ★ 解题思路: 所谓Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。...从语法上说,Promise 是一个对象,从它可以获取异步操作的消息。Promise 提供统一的 API,各种异步操作都可以用同样的方法进行处理。...只有异步操作的结果,可以决定当前是哪一种状态,任何其他操作都无法改变这个状态。这也是Promise这个名字的由来,它的英语意思就是“承诺”,表示其他手段无法改变。...参考代码: 下面是一个用Promise对象实现的 Ajax 操作的例子。...如果是一个错误的地址: ? 答案: D、 rejected失败可以状变成fulfilled成功

3.1K10

`操作符是如何“抽象”错误类型与“短路”函数的

操作符是如何“抽象”错误类型与“短路”函数的 首先,?操作符是被用来勾连·函数体内Result·与·函数返回值类型Result·的【语法糖】。...【函数】返回值类型Result中的E2是一个“同时兼容于所有其它错误类型的、统一的【“抽象”错误类型】”。...按其“抽象”方式分为如下两种情况: 上面两种方式都能把·从函数体内抛出的·不同类型的·错误,经由?操作符,收拢于“一处”。 在这里,我把【类型转换】称为“抽象”是否有些牵强呀?...毕竟,其基础原理与oop中的【抽象】不太一样。 前者的“一处”是(类型转换至)一个具体类型 —— 静态分派; 后者的“一处”是(类型转换至)trait Object —— 动态分派。...其本质也是【类型转换】。 这个,我一直以来使用得比较多。 E2是实现了From trait的任何具体类型。即,E1可被类型转换为E2类型。【类型转换】是其底层机制。

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

    【单子】说白了不过就是【自函子范畴】上的一个【幺半群】而已?请说人话!!

    但是,要求总写没有任何副作用的纯函数是几乎不可能的; HTTP 请求、修改函数外的数据、输出数据到屏幕或控制台、DOM查询/操作、Math.random()、获取当前时间等,这些操作都会使函数产生副作用...直接上代码,看看 Monad 在实际应用中是怎么写的: var fs = require("fs"); // 纯函数,传入 filename,返回 Monad 对象 var readFile = function...定义: 单子由 3 个部分组成: 类型构造子 M,建造一个单子类型M T 类型转换子,经常叫做unit或return,将一个对象x嵌入到单子中: unit(x) :: T -> M T 组合子...传入的是 Promise.resovle(1) 这个 Promise 对象时,已经做了计算,p.then 失效; 关于 Promise 和 Monad 再引用一个很棒的解释(建议重点阅读): 纯函数不能有副作用...,所以无法与外部进行 IO 操作,不能存在 a -> IO 或 IO -> a 这种操作,必须为 IO -> IO(Promise -> Promise),也就是必须为「自函子」,async 函数中都是自函子映射

    1.3K20

    阿里前端一面面试题(附答案)

    值计算自身的行高纯数字:会把比例传递给后代。...:强类型语言也称为强类型定义语言,是一种总是强制类型定义的语言,要求变量的使用要严格符合定义,所有变量都必须先定义后使用。...弱类型语言:弱类型语言也称为弱类型定义语言,与强类型定义相反。JavaScript语言就属于弱类型语言。简单理解就是一种变量类型可以被忽略的语言。...两者对比:强类型语言在速度上可能略逊色于弱类型语言,但是强类型语言带来的严谨性可以有效地帮助避免许多错误。...对象仓库中,数据以"键值对"的形式保存,每一个数据记录都有对应的主键,主键是独一无二的,不能有重复,否则会抛出一个错误。

    71220

    手撕钉钉前端面试题

    Promise 对象的异步操作有三种状态: pending(进行中)、 fulfilled(已成功)和 rejected(已失败) ,只有 Promise 对象本身的异步操作结果可以决定当前的执行状态,...任何其他的操作无法改变状态的结果 Promise 对象的执行状态不可变。...yield 命令后必须是 Promise 对象或者 Thunk 函数。...() 包装处理) 返回 Promise: async 函数的返回值是 Promise 对象(返回原始数据类型会被 Promise 进行封装), 因此还可以作为 await 的命令参数,相对于 Generator...: 调用 async 函数后返回的是一个 Promise 对象,通过 then 回调可以拿到 async 函数内部 return 语句的返回值 调用 async 函数后返回的 Promise 对象必须等待内部所有

    3.2K21

    回答一下这 10 个最常见的 Javascript 问题

    Javascript 的 Promise 是什么 Promise 是异步编程的一种解决方案,可以替代传统的解决方案--回调函数和事件。ES6统一了用法,并原生提供了Promise对象。...如果 Promise 被解析(resolved),我们可以调用then()方法并使用返回值执行操作。如果被拒绝(rejected),我们可以使用catch()方法来处理错误。...另外,需要注意的是,在声明const时,必须同时初始化它,因为后面不可在更改它。 Javascript中的对象是什么 对象只是一种特殊的数据。对象拥有属性和方法。...例如,表单的“提交”(Submit),时间的“获取”(getYear)等; 属性只是简单的值,而方法是可以在对象上执行的操作。...它不依赖于程序执行期间函数外部任何状态或数据的变化,必须只依赖于其输入参数。 顾名思义,纯函数跟我们初中数学的基本函数一样,遵循一定的映射关系,输入决定输出,一个输入只能对应一个输出。

    84920

    校招前端二面经典面试题(附答案)_2023-03-02

    catch捕获到了第一个错误,在这道题目中最先的错误就是runReject(2)的结果。如果一组异步操作中有一个异常都不会进入.then()的第一个回调函数参数中。...instanceof而实际检测的是类型是否在实例的原型链上。 constructor是prototype上的属性,这一点很容易被忽略掉。...传递中间值⾮常麻烦,⽽async/await⼏乎是同步的写法,⾮常优雅 错误处理友好,async/await可以⽤成熟的try/catch,Promise的错误捕获⾮常冗余 调试友好,Promise的调试很差.../函数名,变量是对实际对象或原始数据的引用。...注意到 await 不仅仅用于等 Promise 对象,它可以等任意表达式的结果,所以,await 后面实际是可以接普通函数调用或者直接量的。

    90940

    Js-函数式编程 前言什么是函数式编程为什么Js支持FP纯函数柯里化组合 compose范畴学functorMonadApplicative FunctorFunctorMonadApplic

    即你可以像对其他数据类型一样对其进行操作,把他们存在数组里,当作参数传递,赋值给变量...等等。...products = yield call(Api.fetch, '/products') // ... } 实际上call不立即执行异步调用,相反,call 创建了一条描述结果的信息。...这是一个真正的好处,因为复杂的异步操作都不再是黑盒,你可以详细地测试操作逻辑,不管它有多么复杂。...有着以下这些组件(component)的搜集(collection)就构成了一个范畴: 对象的搜集 态射的搜集 态射的组合 identity 这个独特的态射 对象的搜集 对象就是数据类型,...把类型当作集合对待是有好处的,因为我们可以利用集合论(set theory)处理类型。 态射的搜集 态射是标准的、普通的纯函数。

    1.9K40

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

    12.1 迭代器的工作原理 for/of循环和展开运算符与可迭代对象无缝配合,但值得理解实际上是如何使迭代工作的。在理解 JavaScript 中的迭代过程时,有三种不同的类型需要理解。...return()方法必须返回一个迭代结果对象。对象的属性将被忽略,但返回非对象值是错误的。...Promise 是 ES6 中引入的对象,表示尚未可用的异步操作的结果。...异步操作,特别是涉及网络的操作,通常会以多种方式失败,必须编写健壮的代码来处理不可避免发生的错误。...相反,基于 Promise 的异步计算将异常(通常作为某种类型的 Error 对象,尽管这不是必需的)传递给then()的第二个函数。

    86410

    58. 精读《Typescript2.0 - 2.9》

    错误 create(undefined); // 错误 而一开始 const persion: object 这种用法,是将能精确推导的对象类型,扩大到了整体的,模糊的对象类型,TS 自然无法推断这个对象拥有哪些...对类型修饰的增强 TS 2.1 版本可谓是针对类型操作革命性的版本,我们可以通过 keyof 拿到对象 key 的类型: interface Person { name: string; age...NewObjType 原封不动的将对象类型重新描述了一遍,这看上去没什么意义。但实际上我们有三处拓展的地方: 左边:比如可以通过 readonly 修饰,将对象的属性变成只读。...:,将对象所有属性变成可选。 右边:比如套一层 Promise,将对象每个 key 的 value 类型覆盖。...将 T 中的 U 类型排除,和 Extract 功能相反。 Omit(未内置)。从对象 T 中排除 key 是 K 的属性。

    1.2K20

    JavaScript错误处理完全指南

    ; 创建后,错误对象将显示三个属性: message:包含错误消息的字符串 name:错误的类型 stack:函数执行的堆栈跟踪 例如,如果我们创建一个新的 TypeError 对象,带有适当的消息,该...SyntaxError TypeError URIError 请记住,所有这些错误类型都是 实际的构造函数,旨在返回一个新的错误对象。...在代码中,你将主要使用 Error 和 TypeError 这两种最常见的类型来创建自己的错误对象。...多数开发人员认为错误和异常是同一回事。实际上,一个错误对象只有在被抛出时才成为异常。...catch 则会 捕获实际的异常。它 接收错误对象,我们可以检查该错误对象(并将其远程发送到生产环境中的某些记录器)。

    5.8K20

    深入理解函数式编程(下)

    图 45 num1是数字类型,而num2是对象类型,这是一个直观的区别。 不过,不仅仅如此。利用类型,我们可以做更多的事。...因为作为数字的num1是支持加减乘除运算的,而num2却不行,必须要把它视为一个对象{val: 2},并通过属性访问符num2.val才能进行计算num2.val + 2。...现在我们把num2当作一个独立的数据,并假设存在一个方法fmap可以操作这个数据,可能是这样的。 图 46 得到的还是对象,但操作通过一个纯函数addOne去实现了。...首先,fmap的目的是把数据从一个类型映射到另一个类型,而JavaScript里面的map函数实际上就是这个功能。...纯函数是没有异步概念的,Promise用了一种很棒的方式把异步和IO转化为了.then函数。

    1.2K30

    深入理解函数式编程(下)

    num1是数字类型,而num2是对象类型,这是一个直观的区别。 不过,不仅仅如此。利用类型,我们可以做更多的事。...因为作为数字的num1是支持加减乘除运算的,而num2却不行,必须要把它视为一个对象{val: 2},并通过属性访问符num2.val才能进行计算num2.val + 2。...现在我们把num2当作一个独立的数据,并假设存在一个方法fmap可以操作这个数据,可能是这样的。 得到的还是对象,但操作通过一个纯函数addOne去实现了。...首先,fmap的目的是把数据从一个类型映射到另一个类型,而JavaScript里面的map函数实际上就是这个功能。...纯函数是没有异步概念的,Promise用了一种很棒的方式把异步和IO转化为了.then函数。

    61310

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

    ; 创建后,错误对象将显示三个属性: message:带有错误信息的字符串。 name:错误的类型。 stack:函数执行的栈跟踪。...TypeError URIError 请记住,所有这些错误类型都是实际构造函数,旨在返回一个新的错误对象。...在代码中主要用 Error 和 TypeError 这两种最常见的类型来创建自己的错误对象。...DOMException 是与 Web API 相关的一系列错误。有关完整列表,请参见 MDN。 什么是异常? 很多人认为错误和异常是一回事。实际上错误对象仅在抛出时才成为异常。...而catch 则捕获实际的异常。它接收错误对象,可以在这里对其进行检查(并远程发送到生产环境中的日志服务器)。

    7.3K50

    学习函数式编程 Monad

    Monad 定义 Monad 使用场景 Monad 一句话解释 Monad 定义 根据维基百科的定义,Monad 由以下三个部分组成: 一个类型构造函数(M),可以构建出一元类型 M。...Promise.resolve 在处理 thenable 对象时,同样不会直接返回该对象,会将对象中的 then 方法当做一个 Promise 等待结果,并作为外层 Promise 的值。...❝ps:这里说的副作用,指的是违反纯函数原则的操作,我们应该尽可能避免这些操作,或者把这些操作放在最后去执行。...任何事物都是对象,大量的对象结合起来就形成了集合,对象和对象之间存在一个或多个联系,任何一个联系就叫做态射。 一堆对象,以及对象之间的所有态射所构成的一种代数结构,便称之为 范畴。 什么是函子?...文中包含了许多数学定义、函数式编程的理论等知识,大多是参考网络资料和自我经验得出的,如果有错误的地方,还望大家多多指点 ? 最后,如果你对此有任何想法,欢迎留言评论!

    88120

    ES6中的Promise深入学习

    01-Promise的含义 Promise是异步编程的一种新的解决方案,比传统的解决方案(纯回调函数)更加的方便和强大。...具体表达: 1.从语法上来说:Promise是一个构造函数 2.从功能上来说:Promise对象用来封装一个异步操作并且可以获取其结果 特点: 1.对象的状态不受外界的影响。...},1000) }) resolve函数的作用:在异步操作成功时候调用,并将异步操作的结果作为参数传递出去; reject函数的作用:在异步操作失败时候调用,并将异步操作报的错误作为参数传递出去; Promise...3.1-指定回调函数的方式更加的灵活 例:使用纯回调方式去创建一个音频文件 缺点:必须要在启动异步任务之前就要给它指定回调函数 //成功的回调函数 function successCallback(value...原封不动的返回这个实例 2.参数是一个thenable对象:将这个对象转为Promise后,立即执行thenable对象的then方法 3.参数是不具有then方法的对象或者根本不是对象:返回一个新的Promise

    1.3K30
    领券