javascript es6 Promise 異步同步的寫法(史上最簡單的教程了)


1 來個簡單的例子

var p = new Promise(function(resolve, reject){
//做一些異步操作
setTimeout(function(){
console.log('2秒后執行完成Promise');
}, 2000);
});
var p = new Promise(function(resolve, reject){
//做一些異步操作
setTimeout(function(){
console.log('1秒后執行完成Promise');
}, 1000);
});

運行結果如下 可以看到2個是異步執行的

 

 

 2 關於resolve用法(異步操作成功調用)

var p1 = new Promise(function(resolve, reject){
        //做一些異步操作
        setTimeout(function(){
            console.log('執行完成Promise');
            resolve('要返回的數據可以任何數據例如接口返回數據');
        }, 2000);
    });
p1.then(function(data){console.log(data)});

異步操作成功后會觸發 resolve函數 里面傳入的參數 會到then的回調函數里

 reject寫法我就不說了 感覺用處不大 resolve夠用了

 

 3 異步中的同步的寫法await

 

 

function doubleAfter2seconds(num) {
    return new Promise((resolve, reject) => {
        setTimeout(() => {
            resolve('2秒后觸發');
        }, 2000);
    } )
}
function doubleAfter1seconds(num) {
    return new Promise((resolve, reject) => {
        setTimeout(() => {
            resolve('1秒后觸發')
        }, 1000);
    } )
}
 var result = await doubleAfter2seconds(30);
 console.log(result);
 var result = await doubleAfter1seconds(30);
    console.log(result);

 

 

 ps:要寫在函數里

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM