As Felix says, a promise is another value that needs to be given up.
, promises . , , , , . :
function goGenerator *() {
var userData = yield getUserData();
yield checkuserData(userData);
}
getUserData checkUserData . ,
function goPromises() {
return getUserData() . then(checkUserData);
}
promises. .
async function goAsyncFunction() {
var userData = await getUserData();
return await checkUserData(userData);
}
. , , , ES6.
, , , "", , promises - , , . co - Google. :
function spawn(generator) {
var iterator = generator();
return new Promise(
resolve =>
function iterate(val) {
var {value, done} = iterator.next(val);
if (done) { resolve(val); }
else { Promise.resolve(value).then(iterate); }
}()
);
}
spawn(goGenerator). spawn , : spawn(goGenerator) . then(doMoreStuff).
. co - , yield promises, , , a la Promise.all.
user663031