欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Promise简单使用,需要在ES6以上

程序员文章站 2022-05-18 20:51:52
//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');