首页 >>  正文

finally的用法

来源:baiyundou.net   日期:2024-07-18

1、promise.resolv

 

静态方法 Promise.resolve(value)可以认为是 new Promise方法的语法糖,比如Promise.resolve(42) 可以认为是以下代码的语法糖。

 

new Promise(function (resolve) {

    resolve(42)

})

这个静态方法会让Promise对象立即进入确定(即resolved) 状态,并将42传递给后面 then 里所指定的 onFulfilled函数。

 

2、promise.reject

 

Promise.reject(error)是和Promise.resolve(value)类似的静态方法,是 new Promise 方法的快捷方式。比如 Promise.reject(new Error("Promise reject error")) 就是下面代码的语法糖形式

 

new Promise(function (reject) {

    reject(new Error("Promise reject error"))

})

它的功能是调用该 Promise对象通过then指定的 onRejected函数,并讲错误(Error)对象传递给这个onRejected函数

 

3、promise.then

 

Promise.then(onFulfilled, onRejected)

① 函调函数异步执行

Promise/A+规范统一规定:Promise 只能使用异步调用方式

② 返回值

Promis.then不仅仅是注册一个回调函数那么简单,它还会将回调函数的返回值进行变换,创建并返回一个Promise 对象。正是 then函数中有了这样返回值的机制,才能使得在整个Promise链式结构当中,每个then方法都能给 下一个then方法传递参数

③ promise穿透

 

4、promise.catch

 

① 语法糖的本质

Promise.catch只是promise.then(undefined, onRejected) 方法的一个别名而已。也就是说,这个方法用来注册当Promise对象状态变为 Rejected时 的回调函数

第一种写法

Promise.resolve()

  .then((data) => console.log(data))

  .then(undefined, (err) => console.log(err));

 

第二种写法

Promise.resolve()

  .then((data) => console.log(data))

  .catch((err) => console.log(err));

 

② 只有一个主人

整个Promise链中,catch只属于异步触发它当中回调函数 执行的那个Promise,并不属于所有 Promise

 

5、promise.finally

 

promise.finally方法的回调函数不接受任何参数,这意味着finally没有办法 知道,前面的Promise状态到底是fulfilled还是rejected 。这表明,finally方法里面的操作,应该是与Promise状态无关的,不依赖于 Promise的执行结果。

 

6、promise.all

 

Promise.all接受一个promise对象的数组作为参数,当这个数组里的所有 Promise 对象 全部变为resolve或者reject状态的时候,它才会去调用.then方法。

传递给Promise.all的 promise并不是一个个的顺序执行的,而是同时开始、并行执行的。

 

7、promise.allSettled

 

Promise.allSettled()的入参和Promise.all、Promise.race一样,接受一个promise 对象的数组作为参数,也是同时开始、并行执行的。但是Promise.allSettled的返回值需要注意以下几点:

Promise.allSettled不会走进catch,当所有输入Promise都被履行或者拒绝时, statusesPromise 会解析一个具有具体完成状态的数组

Promise.allSettled()在你需要执行平行和独立的异步操作并收集所有结果时非常有效, 即使某些异步操作可能失败。

 

8、promise.race

 

Promise.rece()的使用方法和 Promise.all一样,接收一个promise 对象的数组为参数,Promise.race是要有一个promise对象进入Fulfilled或者 Rejected状态的话,就会继续进行后面的处理。这里依旧有两个点要注意:

和Promise.all一样是所有数组当中的Promise同时并行的

Promise.race 在第一个Promise对象变为Fulfilled之后,并不会 取消其他promise对象的执行。

Promise.race接受的是一个Promise对象数组,但是返回的确实最先完成Fulfilled 或者最先被Rejected的一个Promise的结果

 

9、promise.any

 

Promise.any的入参和Promise.all、Promise.race、Promise.allSettled一样, 接收一个promise对象的数组作为参数。

","gnid":"99b672bdcf4f63a0d","img_data":[{"flag":2,"img":[{"desc":"","height":518,"title":"","url":"https://p0.ssl.img.360kuai.com/t012ec4533850b75233.jpg","width":877}]}],"original":0,"pat":"art_src_0,fts0,sts0","powerby":"pika","pub_time":1710231954000,"pure":"","rawurl":"http://zm.news.so.com/edc050804c5eaf5ea2fbedd7a1e03938","redirect":0,"rptid":"cbd9272e7816c465","rss_ext":[],"s":"t","src":"HOOBOO青柠","tag":[],"title":"Promise的九大方法

戈览侮1857in the end,at last,finally在用法上有何异同 -
芮陈鱼18498676548 ______ at last只能指时间位置,而不能指时间顺序,在语义上指经过,周折,等待,耽搁后的“最后,终于”得到所期待的结果. eg. At last , he passed the exam . 最后他终于通过了考试.(可用in the end代替) finally 指一系列事物或论点的顺序,...

戈览侮1857at last和finally的区别 -
芮陈鱼18498676548 ______ at last和finally在意义和用法上有其共同的地方,也有其相异的地方.这里需要特别指出的,就是finally既可以用于表示时间位置(相当于at last,in the end),也可以用于表示时间的先后顺序(如同first,second,third,next,then,last),这种用法的...

戈览侮1857java中的“try - catch - finally”结构中的“finally”有哪些用途 -
芮陈鱼18498676548 ______ 可以这么理解 try块中的内容是在无异常发生时执行到结束 catch块中的内容,是在try块中内容发生catch所声明的异常时,跳转到catch块执行 finally块则是无论是否发生异常,都会执行finally块的内容 所以,代码逻辑中有需要无论发生什么都必须执行的代码,则可以放在finally块中 例如:最常见的就是把关闭connection、释放资源等的代码放在finally块中

戈览侮1857at last at the end in the end finally的区别 -
芮陈鱼18498676548 ______ at last → 多指经主观努力,克服各种困难后才终于达到目的. in the end与at last同义,但in the end不仅可指“过去”还可表示对“未来”的预计. finally → 常与at last换用,都可用于对往事的描述,但finally不带感情色彩,指一系列事情的最后结局. at the end→终了时,最终.

戈览侮1857关于end这个词的用法? -
芮陈鱼18498676548 ______ by the end到/在最后,表示到那时候,常常可以根据语境、时态看出.by...the end of后一般跟完成时态 如:By the end of 2170, people _will have established_cities and industries. He will have turned 30 by the end of this year.in the end在最后,...

戈览侮1857eventually与finally的区别 -
芮陈鱼18498676548 ______ 一、词义辨析不一样 1、eventually侧重于动作或行为的结果. Eventually the fire was under control. 火势终于被控制住了. 2、finally不带感情色彩,指一系列事情的最后结局,用于对往事的描述. The food finally arrived at the end of last week ...

戈览侮1857in the end和finally在用法上有什么区别吗? -
芮陈鱼18498676548 ______ finally通常用于句首或动词之前,可以用句中 He finally got it.Finally,he got it.而in the end 不能用句中 其余用法相同 意思方面 二者基本一样 不过finally 意思略多 有时带有感情色彩 “终于” Finally,china got all of the golden medals.而in the end 就显得很平淡 没什么感情(体会一下下) 还有in the end 用在书面中 阐述说明中多 而finally用在正式和非正式场合都可 很高兴帮助你

戈览侮1857最后的英语? -
芮陈鱼18498676548 ______ 其实他们说的都对的 1.last(注意这个单词既可以是形容词又可以是副词哦 还有一个也是副词lastly都是“最后“的意思) 2.eventually(eventual是它的形容词) 3.finally(final是它的形容词形式) 4.ultimate(形容词,意思是”最后的“) 5.end(名词...

戈览侮1857finally等于last还是at last
芮陈鱼18498676548 ______ finally adv. 最后;终于;决定性地=eventually, ultimately, lastly at last 终于,到底,毕竟,好容易才in the end, at length, in fine lastly adv. 最后,终于 以上三个都可以表示最后、终于.而last一般表示上次: last adv. 最后地;上次,最近;最后一点 ...

戈览侮1857lastly和finally有什么区别? -
芮陈鱼18498676548 ______ 一、词义用法不一样 1、lastly用以引出所列事情中的最后一项或最后一点: Lastly, I would like to thank my parents for all their support. 最后,我想感谢父母对我的全力支持. 2、finally用于对往事的描述,不带感情色彩,指一系列事情的最后结局...

(编辑:自媒体)
关于我们 | 客户服务 | 服务条款 | 联系我们 | 免责声明 | 网站地图 @ 白云都 2024