gpt4 book ai didi

javascript - 异步函数的js生成器

转载 作者:行者123 更新时间:2023-12-03 09:34:24 26 4
gpt4 key购买 nike

如何在嵌套函数中使用yield?

function* translate(){
socket.once( 'translate/set', function( data){
yield data
});

socket.emit( 'translate/get', { query: query})
};


var data = translate().next().value;
console.log( data);

错误

yield is not defined

我不明白如何在不更改代码的情况下将生成器用于异步函数

最佳答案

您不能在生成器的立即内部上下文之外yield。然而,您可以做的是将回调传递给 translate,产生对 socket.once 的调用(给它回调),然后继续执行 translate 一旦调用此回调。

function* translate(cb){
yield socket.once('translate/set', cb);
socket.emit('translate/get', {query: query})
}

var translate = translate(cb);
translate().next(); // ...socket#once

function cb(data) {
console.log(data); // data from socket#once
translate.next(); // ...socket#emit
}

关于javascript - 异步函数的js生成器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32379592/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com