前言
随着Promise在被广泛的使用和解决回调地狱的问题,以至于我们只要在发ajax请求的时候就会想起来去使用它。最近在使用小程序的请求request就想当然的使用then的方式来获取结果,然并卵。。。
于是就去小程序官网巴拉下资料小程序文档链接, 仔细翻阅得到结果如下:
异步 API 返回 Promise
基础库 2.10.2 版本起,异步 API 支持 callback & promise 两种调用方式。当接口参数 Object 对象中不包含 success/fail/complete 时将默认返回 promise,否则仍按回调方式执行,无返回值。
注意事项:部分接口如 request 等等, 它们的 promisify 需要开发者自行封装。
那么我们就来对request 封装,使它支持callback & promise 两种调用方式。
一、关于Promise的一些基本介绍和使用
此处只是简单的概述一些基本理念和表现形势,以帮助能理解后续的实现(没有基础的同学,自行度娘和google)
Promise 对象用于一个异步操作的最终完成(或失败)及其结果值的表示。简单点说,它就是用于处理异步操作的,异步处理成功了就执行成功的操作,异步处理失败了就捕获错误或者停止后续操作。
一般表示形式为:
new Promise(
/* executor */
function(resolve, reject) {
if (/* success */) {
// ...执行代码
resolv

本文介绍了如何在微信小程序中让request请求同时支持Promise和callback方式。通过分析小程序的异步API特性,利用Promise和Object.defineProperty对request进行封装,使得在没有success回调时返回Promise,从而实现两种调用方式的兼容。
最低0.47元/天 解锁文章
400

被折叠的 条评论
为什么被折叠?



