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(() => {成功的回调,函数做参数 }, () => {失败的回调,函数做参数 });

原文地址:https://www.cnblogs.com/zlf1914/p/12818298.html