JS异步编程Promise

        js的Promise用法十分风骚,各种的高阶函数用法,什么是高阶函数?就是他的参数是函数。对于新手来说有点绕,如今的js已经是今非昔比了,纯纯的大后端了,翻身农奴把歌唱了,只要是做web开发,js都是永远绕不过去的,js的水平就直接决定了你的职业水平。

        看下Promise用法,我写了2部分,第一部分我成为注册监听部分。

let nswe = new Promise((success,fail) => {

    一顿逻辑处理...

    一顿业务判断...
    
    if(果真)
    {
        success('梦想成真')
    }
    else
    {
        fail('其中有诈')
    }
});

        简简单单,就是这么用的,创建Promise的参数就是一个带有2个参数的函数,第一个函数表示成功,那么第二个就是失败!你可以想象成调用了success函数就是监听了一个事件,什么事件呢?就是then事件,那么fail函数就是监听了catch事件,怎么触发呢?往后看第二部分:

nswe.then((param)=>{
    一顿逻辑处理...param参数值就是“梦想成真”
}).catch((param)=>{
    一顿逻辑处理...param参数值就是"其中有诈"
})

then和catch依然是高阶函数用法,参数都是函数!当调用then的时候,success方法里面的参数就直接给then了,同理调用catch的时候,fail参数也带给catch了,然后就可以一顿链式操作就行了,无限then就可以实现所有的功能了。

nswe.then((param)=>{return new Promise(...)}).then(()=>{})...

        Promise虽然是好东西,可以支持链式操作,但是写法太蠢了,于是es7标准就出了个async修饰符,加到函数的前面,比如:

async function wahaha()
{
    return 'i love you';
}

        这样这个函数他的返回值就变成了一个Promise对象了,神奇?我明明写的返回值是一个字符串啊...对js就是这么不讲道理,你写的这个字符串被当作了success函数的返回值。

wahaha.then((llp)=>{这里的llp就是'i love you'了})

        需要调用then方法就可以得到返回值了。

怎么样?迷糊了吗?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值