cari

Rumah  >  Soal Jawab  >  teks badan

node.js - Selesaikan kod sampel Generator+Promise dalam JavaScript yang anda tidak tahu

function foo(x,y) {
    return request(
        //request是一个Promise对象
        "http://some.url.1/?x=" + x + "&y=" + y
    );
}

function *main() {
    try{
        var text = yield foo( 11, 31 );
        //在yield处暂停后 yield需要等待第二次next()传值 text应该没有被赋值
        console.log( text );
    }
    catch (err) {
        console.error( err );
    }
}

var it = main();

var p = it.next().value;
//等待promise p决议
p.then(
    function (text) {
        it.next( text );
        //这里拿到的 text 应该没有赋到值呀
    },
    
    function (err) {
        it.throw( err );
    }
);

这是你不知道的JavaScript 生成器+Promise 小节中的一段示例代码
**其中 text 应该拿到的是yield 的值 而yield 应该需要第二个next()去赋值 那么 text应该是undefined 这里我就看不懂了 求解!**
某草草某草草2797 hari yang lalu680

membalas semua(2)saya akan balas

  • ringa_lee

    ringa_lee2017-06-15 09:23:42

    Panggilan lelaran pertama yang seterusnya akan dilaksanakan pada hasil pertama Pada masa ini, tiada nilai ditetapkan, tetapi fungsi ajax berdasarkan janji dikembalikan
    Selepas penyelesaian janji ini, nilai pulangan permintaan ajax akan digunakan sebagai parameter. Borang diberikan kepada fungsi pertama dalam kemudian sebagai parameter
    seperti ini

    (() => new Promise((resolve => { resolve("我是参数"); })))().then(data => console.log(data), err => { throw err; })    //"我是参数"

    Seterusnya, parameter ini akan diberikan kepada kedudukan hasil pertama dan fungsi akan dilaksanakan

    balas
    0
  • 天蓬老师

    天蓬老师2017-06-15 09:23:42

    // Teks yang diperoleh di sini tidak boleh diberikan nilai

    Saya salah faham, teks adalah hasil permintaan yang berjaya, saya cadangkan anda memahami Janji sekali lagi

    balas
    0
  • Batalbalas