Rumah  >  Soal Jawab  >  teks badan

javascript - Adakah boleh menggunakan async seperti ini?

Saya baru-baru ini membaca beberapa artikel dan mula menggunakan async untuk memproses kod asynchronous. Ia adalah lebih mudah untuk digunakan berbanding panggilan balik tak segerak yang sebelumnya, bagaimanapun, saya mendapati bahawa terdapat masalah dengan kaedah penulisan saya dan semua orang boleh tolong saya betulkan....

(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('注册成功');
 })();
    

Terlupa logik menulis, inilah kaedah panggilan, kan?

PHP中文网PHP中文网2692 hari yang lalu665

membalas semua(3)saya akan balas

  • 伊谢尔伦

    伊谢尔伦2017-06-30 10:00:02

    Jika fungsi tanpa nama tidak diisytiharkan sebagai async, cara penulisan ini akan terasa pelik. Memandangkan await digunakan dalam fungsi tanpa nama ini untuk memanggil fungsi lain, ia mesti diisytiharkan sebagai tidak segerak, jika tidak, ralat kompilasi akan dilaporkan. Ia boleh dilaksanakan serta-merta seperti yang ditulis oleh poster asal. Walau bagaimanapun, adalah lebih disyorkan untuk mengisytiharkan nama fungsi untuk fungsi tanpa nama dan memanggil fungsi itu secara tidak segerak.

    balas
    0
  • 迷茫

    迷茫2017-06-30 10:00:02

    Gunakan try catch lebih kerap Selain itu, saya tidak pasti mengapa anda menyertakan fungsi pelaksanaan segera di sini. Tentukan nama untuk fungsi async. Anda boleh menyesuaikan panggilan kemudian

    balas
    0
  • 怪我咯

    怪我咯2017-06-30 10:00:02

    Secara amnya, tiada masalah untuk menggunakannya dengan cara ini. Apabila fungsi async dipanggil dengan await, ia kembali serta-merta daripada fungsi utama Apabila fungsi async tamat, ia terus melaksanakan fungsi utama.
    Jika menunggu tidak digunakan, fungsi utama akan dilaksanakan. Pada masa yang sama, fungsi async akan dilaksanakan secara tak segerak.

    balas
    0
  • Batalbalas