douzi8 / lechebang

乐车邦h5文档
2 stars 1 forks source link

generator流程控制规范 #18

Open douzi8 opened 6 years ago

douzi8 commented 6 years ago
  1. 可以传入参数

    generator(function* (vm, pv) {
    // 如果任务较长,可以先出现一个loading框
    pv.showLoading()
    }, this, this.pageView)
    .catch(util.promiseCatch)
  2. 常规情况使用

    generator(function* (){
    // 单个ajax服务
    let citys = yield cityService.request()
    
    // 并发ajax,数组模式
    let { citys, cars } = yield [
    cityService.request(),  
    carService.request()
    ]
    
    // 并发ajax, 对象
    let params = yield {
     k: 'v',
     citys: cityService.request()
    }
    
    // 自定义promise
    // 程序卡住5秒
    yield new Promise(resolve => {
     setTimeout(() => {
       resolve()
     }, 5000)
    })
    })
  3. 异常捕获

    
    // 不关心里面的异常,出现异常默认提醒
    generator(function* (){
    }).catch(util.promiseCatch)

generator(function* () {
// 单个catch let num = yield cityService.request().catch(() => { return 0 }) })

// 需要定制异常 generator(function* (){ }).catch(error => { // 错误统一标准格式, statusCode状态码,msg错误消息 let { statusCode, msg } = util.handlePromiseError(error)

if (statusCode === 500) { } else { Lizard.alert(msg) } })