promise
Posted zlf1914
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了promise相关的知识,希望对你有一定的参考价值。
回调函数
函数是对象,函数可以当做参数被传递。将一个函数当做参数传递给另外一个函数
回调函数与同步,异步并没有直接的联系,回调只是一种实现方式,有同步回调,也有异步回调,事件处理回调,延迟函数回调......
出现回调的地方
数组的新方法 forEach/filter/map...... arr.forEach(function(){})
事件处理回调 document.onclick = function(){}
延迟函数回调 setInterval(function(){},1000)
自定义的回调
回调函数的意义
javascript是单线程的,每一次只能执行一个任务。有时候需要等到一个操作执行完成之后再执行下一个操作。
回调函数不会立马执行,会在某个特定的时间点被回调。
回调函数可以解决顺序问题。
promise
promise:承诺的意思。(状态一旦设定,不能改变)。
Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大。
通过new构造函数创建promise对象,构造函数的参数里面又有一个函数参数,这个函数函数里面又有两个参数(resolve,reject),一个代表成功的回调,一个是失败的回调。
Promise对象有以下两个特点
对象的状态不受外界影响。Promise对象代表一个异步操作,有三种状态:pending(进行中)、fulfilled(已成功)和rejected(已失败)
一旦状态改变,就不会再变,任何时候都可以得到这个结果。Promise对象的状态改变,只有两种可能:从pending变为fulfilled和从pending变为rejected。
pending变为fulfilled -->resolve
pending变为rejected -->reject
promise写法
promise.then(() => {成功的回调,函数做参数 });
promise.catch(() => {失败的回调,函数做参数 });
promise.then(() => { }).catch(() => { })
promise.then(() => {成功的回调,函数做参数 }, () => {失败的回调,函数做参数 });
以上是关于promise的主要内容,如果未能解决你的问题,请参考以下文章