简单介绍了很厉害的青梅竹马
工具人们:所以说人帅又强真好啊....你有看过昨天吵很凶的网路文章吗?
我:什麽文章?
工具人们:就是一篇叫什麽渣男给不完的promise,那算什麽啊,有没有想过我们工具人的心情?以为我们自愿当工具人?
resolve
、reject
,自己决定工具人们:在变成工具人前,我其实也会看事情拒绝reject
的,像是那种劈头就狮子大开口的..
const deny = new Promise((resolve,reject)=>{
console.log("你听过...(?)")
reject("我ok,你先听");
})
deny;
仔细看会发现有几个不懂的值,简单说明:
[[PromiseState]]
:回传Promise
状态[[PromiseResult]]
:根据reject
或是resolve
回传对应的值工具人们:当你觉得一件事合理可以做时,像是要是有人约你去他家看猫时,合理嘛当然会resolve
。
const okDESU = new Promise((resolve,reject)=>{
console.log("要来看我家猫後空翻吗?");
resolve("真的吗?好啊好啊")
})
我:那你们是怎麽沦落到今天的啊... 都看过猫了(?)
工具人们:何止呢?我们给过的Promise
可不只这样..
Promise
Promise.race
阿物件:我先讲讲我的故事好了,是这样的,回想我年轻时,那时候认识了三个女生,我甚至还记得她们的名字:sophia
,alanna
,ray
。
function sophia() {
return new Promise((resolve, reject) => {
setTimeout(
() => {
resolve("sophia:跟我交往好吗!")},
(Math.random() + 1) * 1000
);
});
}
function alanna() {
return new Promise((resolve, reject) => {
setTimeout(
() => {
resolve("alanna说:跟我交往好吗!")},
(Math.random() + 1) * 1000
);
});
}
function ray() {
return new Promise((resolve, reject) => {
setTimeout(
() =>{
resolve("ray说:跟我交往好吗!")},
1000
);
});
}
Promise.race([sophia(), alanna(), ray()]).then((isWho) => {console.log(isWho)});
阿物件:因为很渴望交到女朋友,来摆脱魔法师的称号,所以谁先跟我告白就接受。
最後,看似要脱鲁了,结果...
那天Ray
说:希望让她再考虑一下,之後就突然联络不上了。
Promise.race
公式:
Promise.race(iterable)
输入值:可迭代值(iterable) ex:string
,array
回传情境:当promise
内任一个reject
、resolve
完成时
回传值:
- 当输入值不是
promise
时,回传一个fulfilled
的promise
,值为第一个不是promise
的值- 是
Promise
物件时,回传状态pending
的物件:
a. 皆为resolve
:race
内容执行完成,最先执行完的值会执行then
b. 任一值为reject
,仍会 将race
内容都执行完成,但并不会执行then
Promise.all
,Promise.allSettled
方函式:头等工具人...指的不只是能力,同时也是一种态度,不然其实我也是很夯的,想当初...
function sophia(){
return new Promise((resolve,reject)=>{
setTimeout(()=>{
console.log("sophia:跟我交往好吗!")
resolve("sophia:跟我交往好吗!")},(Math.random()+1)*1000)
})
}
function alanna(){
return new Promise((resolve,reject)=>{
setTimeout(()=>{
console.log("alanna说:跟我交往好吗!")
resolve("alanna说:跟我交往好吗!")},(Math.random()+1)*1000)
})
}
function ray(){
return new Promise((resolve,reject)=>{
setTimeout(()=>{
console.log("ray说:跟我交往好吗!")
resolve("ray说:跟我交往好吗!")},(Math.random()+1)*1000)
})
}
Promise.all([sophia(),alanna(),ray()]).then((isWho)=>console.log("我拒绝"))
方函式:一次三个女生都跟我告白後,接着我全部都拒绝了,因为我爱的人只有JS。
Promise.all
公式:
Promise.all(iterable)
输入值:可迭代值(iterable) ex:string
,array
回传情境:当全部promise
皆resolve
时,或一个reject
时
回传值:
- 当输入值不是
promise
时,回传一个fulfilled
的promise
,值为第一个非promise
- 是
Promise
物件时,回传状态pending
的物件:
a. 皆为resolve
:将all
内容都执行完成,会执行then
b. 任一为reject
,将all
内容都执行完成,但并不会执行then
两者差异:
根据MDN是这样说的:
In comparison, the Promise returned by Promise.all() may be more appropriate if the tasks are dependent on each other / if you'd like to immediately reject upon any of them rejecting
Promise.all
,Promise.allSettled
的差别为,如果有reject
,all
会立刻回传。
-- to be continued --
那今天就到这边搂!
每天的休息,是为了後面的追求,明天见。
008
MDN
好听道地「女生英文名字」大全!这样取一秒给人好印象,不怕被笑俗
>>: 29 | WordPress 区块编辑器 | 本次教学单元总结:
前言 今天的内容依旧为训练翻译 seq2seq 神经网络的历程( training process ...
**Actual Oracle 1Z0-082 Practice Exam - Easiest Wa...
● 这章会示范如何用Shioaji做台股下单 终於来到下单的环节啦~~~ 没有下单过,别说你进入过股...
学习进度 资料结构 Stack Queue Android Studio Activity(Life...
此文仅收集便宜的独立服务器,排名不分先后,不定期更新,有不对的或想投稿的请在在评论区评论 Onepr...