王骏的博客
编程、网络技术点滴...

公告

逐渐将VC知识库的博客迁移到这里!

随笔分类

随笔档案

相册

最新评论

阅读排行榜

评论排行榜

程序员博客   首页  新随笔  订阅  管理  登录 
 
JO2000 阅读(1126) 评论(2)

ES6开始内置Promise对象,wait1,wait2,wait3按顺序执行的代码如下:

var wait1 = function(){
  var p = new Promise(function(resolve, reject) {
  	var tasks = function(){
    	alert("1执行完毕!");
    	resolve(); // 我已成功,下一位请继续
  	};
  	setTimeout(tasks,3000);
	});
	return p;
};

var wait2 = function(){
  var p = new Promise(function(resolve, reject) {
  	var tasks = function(){
    	alert("2执行完毕!");
    	resolve();
  	};
  	setTimeout(tasks,2000);
	});
	return p;
};

var wait3 = function(){
  var p = new Promise(function(resolve, reject) {
  	var tasks = function(){
    	alert("3执行完毕!");
    	resolve();
  	};
  	setTimeout(tasks,1000);
	});
	return p;
};
 
wait1().then(wait2).then(wait3);

评论列表
bjiang
每次看到promise就在想,reject不就是callback吗,还非要搞个promise出来.蛋痛啊.

我们现在使用的一套异步的流程控制方是Factory
在使用时一般是这样的.

const Factory = require("factory")

let fac = new Factory({})

然后

fac.use((depot,next)=>{
   setTimeout(()=>{

      next()
   },3000)
});

这里可以use多个方法,我们称这些方法叫"车间",而Factory被我们叫作"工厂"

当我们把所有的流程都use到fac中后,再调用fac.processing()来执行这个流程.

从性能上来讲,比起Promise来说消耗要小的多.从模块的定义来说,也要简单的多.
JO2000
还是喜欢async/await更多一些

发表评论
切换编辑模式