1、避免回调地狱:使用promise可以把回调函数一层层嵌套,变成代码块。这样就减少了代码的嵌套深度,简化了代码的阅读,有利于异步编程思维的形成,是最大的优点。 2、代码的可读性:promise使得异步编程的代码更紧凑,也更有可读性,更加容易排错和查找问题。 3、代码的弹性性:promise支持多个回调函数,在状态改变时可以触发多...
如果Promise没有执行resolve(成功)或者reject(失败),那么.then中的内容永远不会执行,这样就实现了异步操作。 promise函数的异步特点 Promise一个很有意思的特点,就是Promise函数中resolve(成功)或者reject(失败)是异步的: const promise1 = new Promise((resolve, reject) => { reject('fail'); console.log("prom...
重点在then的实现,看上述代码,每个then返回的是什么,是一个新的 Promise,一个新的 Promise,一个新的 Promise 第二个重点是,在内部又处理了一个 回调函数运行结果是 一个 promise的 判断,如果是那么等待这个promise运行结束才调用 resolve 更改状态,关键是resolve的调用时机,resolve的调用时机,才能够往下执行,这两步...
JS的基本使用 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!-- 函数的定义与调用 --> function f1(){ alert("hello javascript!!"); } click me 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11...
Promise.all([f1(), f2(), f3()]).then(function (data){ console.log(data) }) // f1 ok! // f3 ok! // f2 ok! // ["f1 ok!", "f2 ok!", "f3 ok!"] 1. 2. 3. 4. 5. 6. 7. 如果要顺序执行: f1().then(f2).then(f3) ...
Promise.all([f1(), f2(), f3()]).then(function (data){ console.log(data) }) // f1 ok! // f3 ok! // f2 ok! // ["f1 ok!", "f2 ok!", "f3 ok!"] 1. 2. 3. 4. 5. 6. 7. 如果要顺序执行: f1().then(f2).then(f3) ...