//promise延时顺序执行
var waitone = new promise(function(resolve, reject) { settimeout(function(){ resolve(1)}, 1000); }); var waitsecond = new promise(function(resolve, reject) { settimeout(function(){ resolve(1)}, 1000); }); waitone.then(function() { console.log("hello"); // 1秒后输出"hello" return new promise(function(resolve, reject) { settimeout(function(){ resolve(1)}, 1000); }); }).then(function() { console.log("hi"); // 2秒后输出"hi" });
new promise(function(resolve , reject) { resolve(1); }).then(function(val) { console.log(val); return new promise(function(resolve , reject) { resolve(2); }); }).then(function(val) { console.log(val); return new promise(function(resolve , reject) { resolve(3); }); }).then(function(val) { console.log(val); return new promise(function(resolve , reject) { resolve(4); }); }).then(function(val) { console.log(val); }); //输出: // 1 // 2 // 3 // 4
下面代码中,settimeout(fn, 0)在下一轮“事件循环”开始时执行,promise.resolve()在本轮“事件循环”结束时执行,console.log('one')则是立即执行,因此最先输出。
settimeout(function () { console.log('three'); }, 0); promise.resolve().then(function () { console.log('two'); }); console.log('one');
您可能感兴趣的文章:
如您对本文有疑问或者有任何想说的,请 点击进行留言回复,万千网友为您解惑!
网友评论