मेरा प्रश्न निम्नलिखित है: क्या ''लूप के लिए'' पहले प्रतीक्षा के पूरा होने की प्रतीक्षा करेगा, या यह सभी प्रतीक्षित संदेशों को एक साथ ट्रिगर करेगा?
इसके अलावा, अगर प्रतिक्रिया ''यह सभी प्रतीक्षा संदेशों को ट्रिगर करेगा'' है, तो मैं इसे कैसे बना सकता हूं, यदि नीचे दिया गया कोड लूप के लिए ट्रिगर हो जाता है, तो यह प्रतीक्षा के पूरा होने की प्रतीक्षा करता है, और लूप के लिए जारी रखता है?

सादर।

    for(let i = 0; i < parseInt(args[1]); i++) {
        message.channel.send("Please write option number " + (i+1) + ".")
        await message.channel.awaitMessages(filter, {
            max: 1,
            time: 120000
        }).then(optionmessage => {
            try {
            optionmessage.first().content.push(optionsarray)
            } catch(err) {
                return message.channel.send("Time expired.")
            }
        })
    }
2
Lmao 123 20 जून 2020, 20:36

2 जवाब

यह इंतजार करेगा। इस तरह एक कोड इमेजिंग:

(async function () {
  for (let i = 0; i < 5; i++) {
    await new Promise(r => setTimeout(r, 1000));
    console.log(i)
  }
  console.log("end")
})()

जिस लाइन में console.log(i) है, उसे तभी निष्पादित किया जाएगा जब await में वादा पूरा हो जाएगा; इसलिए आपको कंसोल में 0 होने के लिए एक सेकंड का इंतजार करना होगा, फिर 1 के लिए एक और सेकंड का इंतजार करना होगा, और इसी तरह।

उसी तरह, console.log("end") को तभी निष्पादित किया जाएगा जब for लूप समाप्त हो जाएगा (इसलिए इस उदाहरण में 4 के लॉग होने के बाद ही)।

2
ZER0 20 जून 2020, 20:47

नहीं, लूप के लिए वादे को हल करने के लिए प्रतीक्षा नहीं करेगा आप इसे नए "प्रतीक्षा के लिए" लूप के साथ प्राप्त कर सकते हैं

0
rashi jain 20 जून 2020, 20:43