es6 ajax
简单的co用例:
var co=require("co")
class view{
constructor(){
co(function*(){
var p1=this.ajax1()
var p2=this.ajax2()
try{
var result=yield [p1,p2]
console.log(result)
}catch (err){
console.info(err)
}
}.bind(this))
}
ajax1(){
return new Promise(function(res,rej){
var t=1
setTimeout(function(){
t=t+1
res(t)
},2000)
})
}
ajax2(){
return new Promise(function(res,rej){
var t="this is the t2 errone"
setTimeout(function(){
rej(t)
},200)
})
}
}
module.exports=view
co ajax
var co=require("co")
class view{
constructor(){
co(function*(){
var p1=this.ajax1()
var p2=this.ajax2()
try{
var result=yield [p1,p2]
console.log(result)
}catch (err){
console.info(err)
}
var p3=yield this.ajax3()
console.log(p3)
}.bind(this))
}
ajax1(){
return $.ajax({
url: '/rulecycle/test1.json',
data: {naem:21},
type:"get"
})// yield 必须是promise 或者thunk函数,jquery ajax 1.7版本后本身会返回promise对象,不需要手动封装
}
ajax2(){
return $.ajax({
url: '/rulecycle/test1.json',
data: {naem:21},
type:"get"
})
}
ajax3(){
return $.ajax({
url: '/rulecycle/test1.json',
data: {naem:21},
type:"get"
})
}
}
module.exports=view
es6 async,适用简单的异步逻辑 :
class view{
constructor(){
this.ajax1()
}
async ajax1(){
try {
var resultData = await $.ajax({
url: '/rulecycle/test1.json',
type:"get"
})
console.info(resultData)
}catch (e){
console.info(e)
}
}
}
module.exports=view
附注 : babel 默认不支持generator,async特性, 需要在webpack入口文件引入
require("babel-polyfill");
es6 ajax的更多相关文章
- 前端学习(二十八)es6&ajax(笔记)
ES6 let 块级作用域 const 解构赋值 字符串拼接 扩展运算符 ------------------------------------------ ...
- 再学ajax--第一天
今天写这个帖子就是是前几天在学ES6在学到Promise实现AJAX操作时,发现对ajax的一些知识点有些遗忘,所以就回头重新复习了一遍ajax,温故而知新. 主要有从4个方面去复习ajax,分析不透 ...
- 使用es6的then()方法封装jquery的ajax请求
使用场景: jsp页面中使用jquery的ajax请求比较频繁,以前vue框架的项目用过axios,所以就想着用then()封装一个公共请求的方法,这样每次请求就不用那么麻烦的写一大堆请求参数了. 示 ...
- ES6 用Promise对象实现的 Ajax 操作
下面是一个用Promise对象实现的 Ajax 操作的例子. const getJSON = function(url) { const promise = new Promise(function( ...
- 通过ES6实现的Ajax类
个人学习用途而已,仅供参考. class Ajax { constructor(xhr) { xhr = window.XMLHttpRequest ? new XMLHttpRequest() : ...
- 使用ES6的Promis完美解决ajax的回调(优化代码)
相信经常使用ajax的前端小伙伴,都会遇到这样的困境:一个接口的参数会需要使用另一个接口获取. 年轻的前端可能会用同步去解决(笑~),因为我也这么干过,但是极度影响性能和用户体验. 正常的前端会把接口 ...
- ES6新的数据类型 generato,在AJAX中的应用
1.next()方法会执行generator的代码,然后,每次遇到yield x;就返回一个对象{value: x, done: true/false},然后“暂停”.返回的value就是yield的 ...
- es6中promise实现ajax的例子
function getData(url){ var pro = new Promise(function(resolve,reject){ var xhr = null; try{ xhr = ne ...
- ES6封装原生ajax请求
http (data) { return new Promise((resolve, reject) => { var xhr = new XMLHttpRequest(); xhr.onrea ...
随机推荐
- 【python】装饰器
来源:廖雪峰 看了好多次装饰器,发现还是廖老师讲得好,能让我看懂..... 下面是一段装饰器代码 @log def now(): " 它的含义等价于 def now(): " no ...
- svn工具安装下载Tomcat源码以及导入eclipse
安装 1.svn下载地址 https://tortoisesvn.net/downloads.html 2.语言包下载 3.先安装svn,在直接安装语言包 4.桌面右键可以看到相关svn信息 下载To ...
- python开发目录合并小工具 PathMerge
前言 这个程序陆陆续续开发了几天,正好我在学Python,就一边做一边学,倒是学到不少东西. 不得不说python是快速开发的好工具. 程序做了一些改进,这两天又忙着毕设,现在才想起来发到博客上.想想 ...
- thinkphp设置session有效时间
thinkphp的框架文件 ThinkPHP/Common/functions.php function session(){ 在这个方法中找到 thinkphp .1版 if(isset($name ...
- SQL SERVER中的扩展属性
以前在SQL SERVER建表时,总看到扩展属性,但一直未使用过.今天研究下: 增加扩展属性: 语法: sp_addextendedproperty [ @name = ] { 'property_n ...
- Tomcat配置HTTPS方式(单向)
简要记录主要步骤备忘 1.进入到jdk下的bin目录 2.输入如下指令 keytool -v -genkey -alias tomcat -keyalg RSA -keystore d:/tomcat ...
- iOS __weak __strong WeakSelf StrongSelf
在block中常常会用到self,可是会造成循环引用.这时候就需要这样来解决这个问题: #define WeakSelf __weak typeof(self) weakSelf = self #de ...
- BC一周年练习赛
Souvenir Accepts: 901 Submissions: 2743 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 262 ...
- CodeForces 544A
You are given a string q. A sequence of k strings s1, s2, ..., sk is called beautiful, if the concat ...
- 1.2 Quartz 2D 内存管理
本文并非最终版本,如有更新或更正会第一时间置顶,联系方式详见文末 如果觉得本文内容过长,请前往本人 “简书” 通过 Product -> Analyze 来进行静态分析 可以使用Quar ...