async/await,observable,promise简介

async/await

这两个必须一起使用,且async只能用于方法前面,返回的是一个promise对象(promise对象请看后面)。而await只能用于async方法里面,能够保证await里面的内容执行完了才执行后面的代码,即保证同步执行。

  • await关键字不会捕获方法里的异常以及promise里的reject(),它只会一直等待。因此,为了防止一直等待,程序没有反应,需要在async作用的方法后面用catch捕获异常。

promise

promise对象里的内容无需订阅,创建后即可立即执行。对于其内的resolve()和reject方法互斥,执行其中一个,则另一个不能执行,且只能执行一次。

observable

observable相比较于promise其内的方法并不能立即执行,需要订阅后(调用subscribe()方法)才可以执行,并且可以执行多次。

const fs = require("fs");
const read = function(fileName){
    return new Promise((resolve,reject)=>{
        fs.readFile(fileName,(err,data)=>{
            if (err) {
                reject(err);
            } else{
                resolve(data);
            }
        });
    });
};
async function readByAsync(){
    let a1;
    let a2;
    let a3;
    try{
        a1 = await read('1.txt');
        a2 = await read('2.txt');
        a3 = await read('3.txt');
    }catch(e){
        //TODO handle the exception
    }
    console.log(a1);
    console.log(a2);
    console.log(a3);
}
readByAsync();

你可能感兴趣的:(async/await,observable,promise简介)