zoukankan      html  css  js  c++  java
  • async await

    async await可以说是避免回调地狱的终极解决方案,也能解决Promise不能良好解决的分支问题,保持逻辑清晰,加上Webstorm支持的Google Closure Compiler注解,代码简直爽的不要不要的。贴一段:

    /** @typedef {{username:string, password:string}} UserData */
    
    /**
     * Create a new account. Doesn't check username and password.
     *
     * @param {UserData} opt
     * @return {Promise<?User>}
     */
    static async createNewAccount(opt) {
        const options = {
            username: opt.username,
            password: opt.password
        };
        const collection = await mongodb.collection(COLLECTION);
        const doc = await collection.findOne({username: options.username});
        if (doc != null) {
            return null;
        }
        const userData = {
            username: options.username,
            password: UserDao._saltAndHash(options.password)
        };
        const user = new User(userData);
        const result = await collection.insertOne(user.toObject(), {safe: true});
        user.id = result.insertedId;
        return user;
    }

    在Node刚支持ES6的时候,一些维护很积极的库就把代码用Promise重写了,现在估计又要用async await重写了

  • 相关阅读:
    第九次作业
    第八次作业
    第七次作业
    第六次作业
    第五次作业
    第四次作业
    第三次作业
    第二次作业
    第一次作业
    《Java技术》第三次作业--面向对象——继承、抽象类、接口
  • 原文地址:https://www.cnblogs.com/nurdun/p/7512838.html
Copyright © 2011-2022 走看看