bluebird -1 New Promise方法】的更多相关文章

new Promise new Promise(function(function resolve, function reject) resolver) -> Promise 创建一个Promise,传一个函数参数 resolve和reject,两个函数用来决定返回值或者报出异常 例子1: function ajaxGetAsync(url) { return new Promise(function (resolve, reject) { var xhr = new XMLHttpReque…
代码优化,这里通过了wx.request请求轮播图的API,通过result结果里面的data数据我们可以看到massage里面装着我们的数据 通过图片可以用看到swiperList返回的三个元素的数据,这是通过对象的方式定义的一个LIst,我们把message下面的数据给swiperLIst数组 下面是代码的优化部分 1.通过定义const繁殖的方式定义了一个请求结果,这里返回的是一个结构函数()=>{},通过参数params来接受数据 这里返回的是一个Promise方法,该方法返回一个res…
什么是promise? Promise的核心思想是代表异步操作的一个结果,并且promise具有三个状态(pending初始状态,fulfilled成功状态,rejected失败状态).我们可以理解为使用promise可以实现非阻塞io的功能,根据三个不同的状态,我们可以知道回调函数实现在哪个过程. Promise.prototype.then 源码分析: this.then = function(onFulfilled) { if (typeof onFulfilled !== "functi…
functionB(){ this.functionA() } functionA(){ return new Promise((resolve, reject) => { this.$http({ url:XXXX, type:'get', data:{ }}).then(res=>{ resolve();}).catch(err=>{}) }) }…
前两天公司一哥们写了一段node.js代码发给我,后面特意提了一句“写的不太优雅”.我知道,他意思是回调嵌套回调,因为当时比较急也就没有再纠结.然而内心中总记得要解决这个问题.解决node.js的回调金字塔问题有较多方法,在<深入浅出node.js>这本书中介绍了好几种,有事件发布/订阅模式.Promise模式.async库等.其中Promise模式被很多人推崇,实现的库有很多,本着从众的原则,闭着眼睛选个bluebird吧. 然而bluebird的文档并不咋滴,相当不咋滴!网上的例子基本上都…
一.背景 1.Node.js 异步控制 在之前写的 callback vs async.js vs promise vs async / await 里,我介绍了 ES6 的 promise 和 ES7 的 async / await 的基本用法. 可以肯定的是,node.js 的异步控制(asynchronous JavaScript),promise 就是未来的主流,诸如 async.js 等非 promise 库( async.js 基于 callback )终将被淘汰,而基于 promi…
function promise1 = new Promise((resolve,reject)=>{ return result1 }) function promise2 = new Promise((resolve,reject)=>{ return result2 }) function promise = Promise.all([promise1(),promise2()]).then( let tree = [...result1]; tree.push(result2) ).c…
在javascript中,代码是单线程执行的,对于一些比较耗时的IO操作,都是通过异步回调函数来实现的. 但是这样会存在一个问题,当下一个的操作需要上一个操作的结果时,我们只能把代码嵌到上一个操作的回调函数里,这样一层嵌一层,最终形成回调地狱. $.get('/login.php', function (login) { $.get('/user.php', function (user) { $.get('/info.php', function (info) { //代码就这样一层嵌一层,不…
最初遇到Promise是在jQuery中,在jQuery1.5版本中引入了Deferred Object,这个异步队列模块用于实现异步任务和回调函数的解耦.为ajax模块.队列模块.ready事件提供基础功能.在用jQuery操作DOM的时候对Promise的使用欲不够强烈,最近学习node和Angular,需要用js写业务逻辑和数据操作代码的时候这种场景需求就出来了.一般来说事件适合在交互场景中运用,因为用户的行为本来就是分散的,而promise这样的流程控制适合在后台逻辑中处理业务. //j…
项目需要,看了点nodejs,其中比较难理解的就是Promise了,记录一下学习bluebird提供的Promise实现. Promise.promisifyAll(obj)方法 作用:把对象的方法属性变成异步方法,会在函数加上后缀Async. 看下面的代码: var Promise = require('bluebird') var obj = { func1: function () { return 'hehe' }, func2: function () { return 'xix' }…