要是实在不知道要干什么,那就喝两杯思路就来了!

导航菜单

JavaScript中回调函数

既然Promise可以链式调用,例如p.then( ).then()....这样,就意味着它肯定会返回一个Promise对象。如果我们是手动再返回了一个新的Promise对象,那么下一个then方法就是新的Promise中的对象的方法了,是代表新的Promise对象状态改变后的回调函数,而不是前一个,p.then( ).then( )这样调用的话,第二个then需要判断新的Promise状态是否改变才决定是否调用;then方法可以接受两个回调函数作为参数。第一个回调函数是Promise对象的状态变为Resolved时调用,第二个回调函数是Promise对象的状态变为Reject时调用。其中,第二个函数是可选的,不一定要提供。这两个函数都接受Promise对象传出的值作为参数。

// Promise方法的使用

function build (floor) {
	return new Promise(function (resolve, reject) {
		if (typeof floor === 'number') {
			resolve(floor);
		} else {
			reject(floor + ' 异常参数值。');
		}
	})
}

build(0).then(function (res) {
	console.log(res + '=> 还在外面');
	return res + 1;
}).then(function (res) {
	console.log(res + '=> 进入一层');
	return res + 1;
}).then(function (res) {
	console.log(res + '=> 上到二层');
	return res + 1;
}).then(function (res) {
	console.log(res + '=> 上到三层');
	return res + 1;
}).then(function (res) {
	console.log(res + '=> 上到四层');
}).catch(function (res) {
	console.log(res + '系统已锁死!');
})
// 普通回调函数示例

var t = 0;

function parFun (fn) {
	setTimeout(function () {
		t += 10;
		fn && typeof fn === 'function' && fn();
	})
}

parFun(function () {
	console.log(t);
})


发表评论