Promise简单使用,需要在ES6以上
程序员文章站
2022-12-21 20:12:26
//Promise延时顺序执行 下面代码中,setTimeout(fn, 0)在下一轮“事件循环”开始时执行,Promise.resolve()在本轮“事件循环”结束时执行,console.log('one')则是立即执行,因此最先输出。 下面代码中,setTimeout(fn, 0)在下一轮“事件 ......
//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');
上一篇: Scrapy基础