抛开Promise.all race等不谈,只谈基本的用法
Promise用于有先后执行顺序的流程,这句话是否正确?
比如说,从后端请求数据到前端,必须有结果,才能执行then,
再比如说,一个场景,必须对a经过一系列处理之后,才能执行下一步操作,
这个应用场景是否正确?
let a = 1
const p = new Promise(resolve => {
// 对a进行过一系列处理,才能进行进行下一步
a++;
resolve()
})
p().then(res => {
// 再执行下一步操作
})
Promise 对象用于表示一个异步操作的最终完成(或失败)及其结果值.本身就是一个有先后顺序的一个过程。存在三个状态:
待定(pending):初始状态,既没有被兑现,也没有被拒绝。
已兑现(fulfilled):意味着操作成功完成。
已拒绝(rejected):意味着操作失败。
待定状态的 Promise 对象要么会通过一个值被兑现,要么会通过一个原因(错误)被拒绝。当这些情况之一发生时,我们用 promise 的 then 方法排列起来的相关处理程序就会被调用。当 .then() 中缺少能够返回 promise 对象的函数时,链式调用就直接继续进行下一环操作。
已参与了 SegmentFault 思否社区 10 周年「问答」打卡 ,欢迎正在阅读的你也加入。
Promise
用于有先后执行顺序的流程,这句话是否正确?Promise
是为了让处理包含异步过程的代码顺序看起来与该过程的顺序一致,并且可以减少回调函数的嵌套。这里强调异步过程,是因为同步过程的代码天生就与过程一致,当然在同步过程使用
Promise
也并非不可,但完全就是多此一举。