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方法就可以得到返回值了。
怎么样?迷糊了吗?
803

被折叠的 条评论
为什么被折叠?



