美文网首页
小程序的回调 Promise化。

小程序的回调 Promise化。

作者: 黑火巨雷 | 来源:发表于2018-06-30 13:37 被阅读42次

将小程序的异步回调写法改成promise风格
好处:可以直接使用async等基于promise的异步语法。

promisify.js
const promisify = (originFunction) => {
  return (params = {}) => {
    return new Promise((resolve, reject) => {
      let returnFunctionObj = {
        success: (success_info) => {
          resolve(success_info)
        },
        fail: (fail_info) => {
          reject(fail_info)
        }
      }

      // 使用promise.then来接受success,catch来接受fail,本文件没考虑complete回调,需要的话可以也resolve并返回不同的参
      // 使用Object.assign混合原始options,这样你依然可以传入配置项
      params = Object.assign(params, returnFunctionObj); 

      originFunction(params)
    })
  }
}

export default promisify;

pwx.js

import promisify from "@/utils/promisify.js"; // 引用上面的文件


const pwx_handler = {
    get(target,name){
        if(name in wx){
            return promisify(wx[name])
        }
    }
}

let pwx = new Proxy({},pwx_handler)
// 使用Proxy监听,并匹配wx对应的方法


export default pwx

some.js

import pwx from '@/utils/pwx.js';    


// 即可通过pwx来直接引用wx对象拥有的方法
pwx
.login({/** 传入你想要的配置 **/})
.then(resp => {
        return pwx.getUserInfo({ lang: "zh_CN" });
      })
      .then(resp => {
        pwx.setStorage({
          key: "userInfo",
          data: resp.rawData
        });
      })
      .catch(resp => {
        console.log(resp);
      });

相关文章

  • 小程序的回调 Promise化。

    将小程序的异步回调写法改成promise风格好处:可以直接使用async等基于promise的异步语法。 pwx....

  • Promise

    1.为什么需要Promise 回调地狱回调函数中嵌套回调Promise解决了回调地狱 2. Promise 的基本...

  • 如何正确的使用Promise

    promise用法 对比传统回调函数与Pormise的写法 传统回调函数 Promise的写法 Promise要比...

  • 回调函数 promise 化

    node 提倡异步回调的事件模型内置异步函数都是回调形式,可以转为 promise, node 提供了内置的工具...

  • ES6(十一)—— Promise(更优的异步编程解决方案)

    目录 说到Promise就不得不说道说道这 —— 回调地狱 Promise —— 解决回调地狱Promise语法规...

  • Promise、Generator、Reflect、Map入门、

    Promise Promise的出现是为了解决回调地狱的,使用Promise,我们就可以利用then进行「链式回调...

  • 解决异步问题——promise

    promise介绍 promise主要是为了解决嵌套回调的问题,使代码更加简洁,promise将嵌套的回调函数改成...

  • promise和async

    Promise 回调地狱 Promise概念 Promise是ES6中新增的一个构造函数。 目的解决回调地狱的问题...

  • ES6快速学习(七)Promise

    回调函数 Promise 解决了什么痛点 回调地狱 代码如下 我的第一个Promise使用 解决回调地狱之链式...

  • 小程序中使用async

        在小程序开发时,我们请求数据,就需要使用promise或者async处理异步请求,避免掉入回调地狱。而as...

网友评论

      本文标题:小程序的回调 Promise化。

      本文链接:https://www.haomeiwen.com/subject/yfutuftx.html