ajax解决回调地狱,JS之用ES6 Promise解决回调地狱(这里以小程序为例)

首先 写一个请求的方法,如:

/**

* 银行窗口

* 你需要给我提供相关的相关参数我帮你提交到服务器上

* 我会给你一个等待区的编号给你 你去等待区等待,我处理完成会去等待区通知你

* @param 相关参数

*/

submit: function(data) {

return new Promise((success, error) => {

wx.request({

url: CONFIG.API_URL.course_save, // 仅为示例,course_save 为配置文件config.js里的一个请求路径

data: data,

method: 'post',

header: {

'content-type': 'application/json' // 默认值

},

success(res) {

//数据已经提交到服务器了,res是服务器返回的结果 现在将去等待区交给客户

// success是等待区的客户

success(res.data)

}

})

})

},

在需要调用的方法里 写调用这个方法

//等待区的地点

this.submit(data).then((data) => {

//这里是等待区 银行业务员已经帮你处理完成 并将处理结果告诉你了

wx.showLoading({

title: '成功',

})

setTimeout(function() {

wx.hideLoading();

wx.reLaunch({

url: '/pages/index/index',

})

}, 2000)

})

then后面的代码意思是等待submit 方法请求成功 返回数据后的处理代码

基于PROMISE解决回调地狱问题

回调地狱问题: 在使用JavaScript时,为了实现某些逻辑经常会写出层层嵌套的回调函数,如果嵌套过多,会极大影响代码可读性和逻辑,这种情况也被成为回调地狱.比如说你要把一个函数 A 作为回调函数, ...

Promise解决回调地狱(多层调用问题)

Promise # Promise 是异步编程的一种解决方案:从语法上讲,promise是一个对象,从它可以获取异步操作的消息:从本意上讲,它是承诺,承诺它过一段时间会给你一个结果.promise有三 ...

async + promise 解决回调地狱

// 解决异步回调地狱的方案: async + promise async function writeFile() {   // 打开文件   const fd = await new Promis ...

Promise解决回调地狱

Promise是JavaScript异步操作解决方案.介绍Promise之前,先对异步操作做一个详细介绍. JavaScript的异步执行 概述 Javascript语言的执行环境是”单线程”(sin ...

es6 promise 结束回调地狱

promise的三种状态: pending---进行中 fulfiled---执行成功 rejected---执行失败 var promise = new Promise(function(resol ...

ES6(promise)_解决回调地狱初体验

一.前言 通过这个例子对promise解决回调地狱问题有一个初步理解. 二.主要内容 1.回调地狱:如下图所示,一个回调函数里面嵌套一个回调函数,这样的代码可读性较低也比较恶心 2.下面用一个简单的例 ...

Promise,async/await解决回调地狱

先说一下async的用法,它作为一个关键字放到函数前面,用于表示函数是一个异步函数,因为async就是异步的意思, 异步函数也就意味着该函数的执行不会阻塞后面代码的执行. 写一个async 函数 as ...

promise对象解决回调地狱

先放一张图片感受一下回调地狱 看起来是真的很让人头痛的东西 而现在我这里使用promise对象来解决回调地狱 采用链式的 then,可以指定一组按照次序调用的回调函数. 这时,前一个 then 里的一 ...

使用ES6的Promise完美解决回调地狱

相信经常使用ajax的前端小伙伴,都会遇到这样的困境:一个接口的参数会需要使用另一个接口获取. 年轻的前端可能会用同步去解决(笑~),因为我也这么干过,但是极度影响性能和用户体验. 正常的前端会把接口 ...

随机推荐

C++静态成员和静态成员函数

一:静态数据成员: 类体中的数据成员的声明前加上static关键字,该数据成员就成为了该类的静态数据成员.和其他数据成员一样,静态数据成员也遵守public/protected/private访问规则 ...

C 简单单元测试框架

大约2年前,仿照GTEST写了个简单的C++单元测试框架. http://www.cnblogs.com/imlgc/archive/2012/02/09/2344506.html 后来用C写后台程序 ...

The request failed with HTTP status 401: Unauthorized.

Reporting Service 控件默认由IIS里面的应用程序池标识 里面所定义的用户连接,如果用户没有权限则报以下错误 The request failed with HTTP status 4 ...

win8系统特别慢的基本判断方法

单位有6,7台同事的电脑是win8.1.不知道什么原因,两位领导反映电脑特别慢. 我查看了一下,确实很慢. 虽然知道win8系统不好,但也不至于这样. 打开任务管理器,看了一下cpu和内存的使用状态, ...

masonry框架的使用之-多个视图的均匀等间距分布

__weak typeof(self) weakSelf = self; //对self进行weak化,否则造成循环引用无法释放controller UIView * tempView = [[UIV ...

KBEngine WebConsole Guide

https://github.com/kbengine/kbengine/tree/master/docs

安装mysql后,sql语句中表名区分大小写的问题

今天安装完mysql后,执行查询语句select * from user,结果报user表不存在,但是实际是存在的,查了一下才知道是因为mysql的my.cnf文件中少了一个大小写敏感的配置,若不配置 ...

git 无法拉取新的远程分支

我们常常会根据远程分支创建本地分支,命令如下 git checkout -b dev origin/dev 上面的命令我是想把远程分支 dev 拉到本地来,但是有时候没有用,提示远程分支不存在,我们需 ...

java 多线程一

java 多线程一 java 多线程二 java 多线程三 java 多线程四 java 多线程实现的几种方式: 1.extends Thread 2.implements Runnable 3.im ...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值