javascript - Ist es in Ordnung, Async auf diese Weise zu verwenden?
PHP中文网
PHP中文网 2017-06-30 09:58:02
0
3
643

Ich habe kürzlich einige Artikel gelesen und begonnen, asynchronen Code zu verwenden. Er ist viel einfacher zu verwenden als die vorherigen asynchronen Rückrufe. Ich habe jedoch festgestellt, dass es ein Problem mit meiner Schreibmethode gibt Hilf mir, es zu korrigieren....

(async function(){
    let username = req.body.username;
    let password = req.body.password;
    // 查找当前用户名是否已经注册(返回值为数组,没有结果则为空数组,长度为0)
    let userIsRegisted = await user.findByName(username);
    // 因为用户名的唯一性,可以使用==1或者!=0两种方式判断
    if(userIsRegisted.length!=0){
        res.send('当前用户已注册');
        return;
    }
    // 密码加密
    let hashPassword = crypto.createHash('sha1').update(password).digest('hex');
    let obj = {
        username:username,
        password:hashPassword
    }
    // 添加新用户
    await user.create(obj);
    // 设置session
    req.session.username=username;
    req.session.loged = true;
    res.send('注册成功');
 })();
    

Ich vergesse die Logik des Schreibens, das ist die aufrufende Methode, oder? Es fühlt sich immer seltsam an, dass ich eine Funktion zur sofortigen Ausführung schreiben muss ...

PHP中文网
PHP中文网

认证高级PHP讲师

Antworte allen(3)
伊谢尔伦

如果没有声明该匿名函数为async,就不觉的这种写法奇怪。由于该匿名函数中使用了await调用了另一个函数,所以必须声明为async,否则编译报错。可以直接像楼主写的这样立即执行。不过更建议给该匿名函数声明一个函数名,异步调用方式调用该函数。

迷茫

多用try catch,另外不是很清楚你这里为什么要包一个立即执行函数。给async的函数定义名称。后续不就可以自定义调用了

刘奇

一般这么用 是没问题的。async函数用await调用时,从主函数程立即返回,等async函数结束时,再继续执行主函数。
如果不用await, 主函数会执行完毕。同时async函数会异步的执行。

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!