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 小節(jié)中的一段示例代碼
**其中 text 應該拿到的是yield 的值 而yield 應該需要第二個next()去賦值 那么 text應該是undefined 這里我就看不懂了 求解!**
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("我是參數(shù)"); })))().then(data => console.log(data), err => { throw err; }) //"我是參數(shù)"
Ensuite, ce paramètre sera affecté à la position du premier rendement et la fonction sera exécutée
//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