node.js - Résolvez l'exemple de code de Generator+Promise en JavaScript que vous ne connaissez pas
某草草
某草草 2017-06-15 09:21:42
0
2
657
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 这里我就看不懂了 求解!**
某草草
某草草

répondre à tous(2)
左手右手慢动作

Le prochain appel du premier itérateur sera exécuté au premier rendement. À ce moment, aucune valeur n'est attribuée, mais une fonction ajax basée sur la promesse est renvoyée.
Après la résolution de cette promesse, la valeur de retour de la requête ajax sera. être utilisé comme paramètre Le formulaire est affecté à la première fonction puis comme paramètre
comme ceci

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

Ensuite, ce paramètre sera affecté à la position du premier rendement et la fonction sera exécutée

Peter_Zhu

//Le texte obtenu ici ne doit pas se voir attribuer de valeur

J'ai mal compris, le texte est le résultat d'une demande réussie, je vous suggère de comprendre à nouveau Promise

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!