promise 链式】的更多相关文章

Promise的使用相比大家已经孰能生巧了,我这里就不赘述了 先说说我写的Promise的问题吧,无法实现宏任务和微任务里的正确执行(也就是在Promise里面写setTimeout,setInterval的话,输出顺序会有问题),其他的API(catch.finally.race.all)有兴趣的话,大家可以斟酌补充. 开始贴代码: // 定义一个Promise类function Promise(fn){ // 回调队列 存放的所有的.then里面的回调 this.callbacks = []…
let send = (item) => Promise.resolve(`此时参数是:(${item})`) async function init(){ const arr = [1,2,3,4,5] let res = 0 await arr.forEach(item=>{ send(item).then(e=>{ console.log(e) res++ console.log(res) }) }) console.log(res) } init()…
eg: this.commonLoginFun().then((res) => { if (res.errNo === 0) { const { isLogin } = res.data; if (isLogin) { this.isLogin = true; this.userPhone = res.data.phone; } else { this.isLogin = false; } } }); 在commonLoginFun中: methods:{ commonLoginFun(){ r…
var that = this;that.hello().then(res => { return that.world(res);}).then(res => { console.log(res); }) function hello(){ var that = this; var p = new Promise((resolve,reject) => { resolve('hello '); }) return p; } function world(params){ var tha…
ES6标准引入的异步编程解决方案Promise,能够将层层嵌套的回调转化成扁平的Promise链式调用,优雅地解决了“回调地狱”的问题.当Promise链中抛出一个错误时,错误信息沿着链路向后传递,直至被捕获.利用这个特性能跳过链中函数的调用,直至链路终点,变相地结束Promise链. Promise.resolve() .then(() => { console.log('[onFulfilled_1]'); throw 'throw on onFulfilled_1'; }) .then((…
let a = new Promise((resolve,reject)=>{ resolve(1) }).then((r)=>{console.log(r)}).then(()=>{console.log(2)}).then(()=>{consol.log(3)}) // 1 // 2 // 3 let b = new Promise((resolve,reject)=>{resolve(1)}).then((r)=>{  return 3}).then((r)=&g…
前言 本文主要讲解promise的链式调用的方法及其最终方案 应用场景 假如开发有个需求是先要请求到第一个数据,然后根据第一个数据再去请求第二个数据,再根据第二个数据去请求第三个数据...一直到最后得到真正想要的数据,我最初的做法是 setTimeout(() => { //这里用定时器来代替发请求 //data假设为后台来的数据 let data1 = 1; console.log(data1); setTimeout(() => { let data2 = 2 + data1; conso…
1.什么是Promise Promise 对象代表了未来将要发生的事件,用来传递异步操作的消息. 2.对象的状态不受外界影响.Promise 对象代表一个异步操作,有三种状态: pending: 初始状态,不是成功或失败状态,执行中的状态 fulfilled: 意味着操作成功完成. rejected: 意味着操作失败. 3.Promise 创建 new Promise(function(resolve, reject){   //异步处理  执行完成后调用resolve  执行失败调用 reje…
一.promise的组成 1.task:promise要完成的任务: 2.result:处理完的数据: 3.status:状态: 4.fulfill.reject(对应catch) 5.ResolveCallback ErrorCallback promise状态的解释函数 6.resolve: 对promise当前的状态作出解释,已完成的状态立即执行回掉,未完成的状态注册回掉函数: 7.then:前一promise的回掉注册,后一promise的前导: 二.promose状态机: fulfil…
JQuery极大的提高了我们编写JavaScript的效率,让我们可以愉快的编写代码,做出各种特效.大多数情况下,我们都是使用别人开发的JQuery插件,今天我们就来看看如何把我们常用的功能做出JQuery插件,然后像使用jQuery那样来操作DOM.  一.jQuery插件开发快速上手 1.jQuery插件模板 关于jQuery插件的编写,我们可以通过为jQuery.fn增加一个新的函数来编写jQuery插件.属性的名字就是你的插件的名字,其模板如下: (function($){ $.fn.m…