js-- promise

184 阅读1分钟
function getName(name) {
    return new Promise((resolve,reject) =>{
        if (name == 'aa') {
            resolve(name)
        }else {
            reject()
        }
    })
}
getName('hhhh').then(function(name){console.log(name)},function(){console.log('无名氏')})//无名氏
getName('aa').then(function(name){console.log(name)},function(){console.log('无名氏')})//aa

   function getid (id) {
       return new Promise((resolve,reject) => {
           if (id == 'a') {
               resolve(id)
           } else {
               reject('no id')
           }
       })
   }
   function getName(id) {
       return new Promise((resolve,reject) => {
           if (id == 'a') {
               resolve('name')
               console.log(name)
           } else {
               reject('no Name')
           }
       })
   }
    function getCity(name) {
        console.log('cityesss')

    }

    function getFail() {
       console.log('jjajajja')
    }
    getid('b').then(getName,getFail).then(getCity)
    这里及时是执行了 getFail, getCity也是会执行的
  1. asyn await 的用法,这样就可以不用写各种then then then 了

 function getid (id) {
        return new Promise(function(resolve,reject){
            if (id == 'a') {
                resolve(id)
            } else {
                reject('no id')
            }
        })
    }
    function city (id) {
        return new Promise(function(resolve,reject){
            if (id == 'a') {
                console.log('city is succ')
                resolve(id)
            } else {
                reject('no city')
            }
        })
    }
    async function haha() {
        try {
           let b = await getid('a') 
           console.log(b)//成功时返回的信息
            let c = await city(b)
           console.log(c)
        }
        catch(err) {
            console.log(err) //出错时返回的信息
        }
    }
    haha();