首页 > 解决方案 > 有没有办法在不等待的情况下检查直接调用的异步函数

问题描述

很多时候我不小心像这样直接调用了一个异步函数

let get_users;
let users;

/*
 * @return data on success and null otherwise
*/
get_users = async function (){
    let users;

    users = await $.ajax({...});

    return users;
}

users = get_users();

if (users === null){
    console.log ('Fail');
}
else{
    console.log ('Success');
}

这将Success每次写入,因为返回promise的不是 null,调试起来简直是一场噩梦。我可以遍历所有 500 多个异步函数(例如foo.bar_async ())并附加一些内容,然后使用 grep 查找在*_async没有命令的情况下调用函数的所有情况await,但这非常困难且非常难看。有没有更好的调试方法(注意我不相信 JSHint 可以处理这个问题,尤其是当文件作为模块加载时)?

标签: javascriptasynchronousasync-await

解决方案


推荐阅读