JavaScript Day24 - Promise(1)

ES6:Promise

  • Promise:代表一个即将成功或失败的非同步操作
  • 会有这几状态:
    • 搁置 (pending):初始状态
    • 实现 (fulfilled):表示操作成功,会实行 resolve
    • 拒绝 (rejected):表示操作失败,会实行 reject
  • 成功後续可以用 then 继续
  • fetch() 就是依照 Promise 包起来的一组 API
new Promise(function(resolve, reject) { ... } );
const newP = new Promise((resolve, reject)=>{
    // 想执行的非同步操作
    if (true) {
        resolve(status); // 成功时回传
    } else {
        reject(status); // 失败时回传
}).then((data)=>{
    // 成功时用 then 继续处理
}).catch((error)=>{
    // 失败时用 catch 继续处理
})
const newP = new Promise((resolve, reject)=>{
    setTimeout(()=>{
        if(Math.random() > 0.5){
            resolve('success')
        }
        else{
            reject('error')
        }
    }, 2000)
}).then((data)=>{
    console.log(data) 
}).catch((error)=>{
    console.log(error)
})

参考资料

MDN 使用 Promise
MDN Promise
铁人赛:使用 Promise 处理非同步
JavaScript Promise 全介绍
JS 原力觉醒 Day14 - 一生悬命的约定:Promise
JavaScript基本功修练:Day25 - Promise
从Promise开始的JavaScript异步生活
Promise 与 Opendata
JavaScript 同步延迟 ( Promise + setTimeout )
JavaScript | 从Promise开始承诺的部落格生活

(资料很多,可以多参考理解消化一下)

次回

再继续讨论 Promise 罗


<<:  [ Day 24 ] - 阵列资料处理 - filter

>>:  Day 24 - redux-saga 用到 Generators~

Day 24 介绍 Capybara 及设定

该文章同步发布於:我的部落格 在我们 new 出一个全新的 Rails 专案时,会在 Gemfil...

Day 12: 前往未知秘境!在iOS上展示Ktor资料!

Keyword: swift,swiftUI,ObservableObject 到Day12 使用s...

小学生学程序设计 Day 28:「同学们,按照身高排好! 原理篇」

嘿~~ 各位好,我是菜市场阿龙! 这集要介绍的是「泡泡排序(Bubble Sort)演算法的原理」 ...

DAY 11:Thread-Specific Storage Pattern,高并发的多重宇宙空间

什麽是 Thread-Specific Storage Pattern? 为每个 goroutine...

Day27 NiFi 场景应用范例 (二)

今天要带大家做另外一个简单的场境应用,我们继续沿用昨天所处理的 parquet File 来做今天的...