ES6(ECMAScript 2015) 原生提供了 Promise 对象。 Promise 是异步编程的一种解决方法,比传统的回调函数和事件更合理更强大,Promise对象,就可以将异步操作以同步操作的流程表达出来,避免了层层嵌套的回调函数。此外,Promise对象提供统一的接口,使得控制异步操作更加容易。// Promise 新建后立即执行,所以首先输出的是Promise。然后,then方法指定的回调函数,将在当前脚本所有同步任务执行完才会执行,所以resolved最后输出。 let promise = new Promise(function (resolve, reject) { console.log('Promise'); // Promise resolve(); }); promise.then(function () { console.log('resolved.'); // resolved. }); console.log('Hi!'); // Promise // Hi! // resolved.1.Promise 的三种状态funct
1.同步和异步JS是单线程语言,只能同时处理一件事浏览器和nodejs支持js启动进程,如Web WorkerJS和DOM渲染共用一个线程,因为JS可以修改DOM遇到等待 (网络请求、 定时任务) 不能阻塞异步的目的是为了解决单线程存在等待的问题,是基于JS是单线程的本质,以callback函数形式来调用,不会阻塞代码执行。2.异步的应用场景网络请求(Ajax)定时任务(setTimeout)3.CallBack Hell(回调炼狱) 使用Promise解决
Gonwe
心同流水净,身与白云轻