gpt4 book ai didi

javascript - 更好地理解 javascript 的产量

转载 作者:行者123 更新时间:2023-11-28 00:33:51 25 4
gpt4 key购买 nike

我的 Koa 应用程序中有以下代码:

exports.home = function *(next){
yield save('bar')
}

var save = function(what){
var response = redis.save('foo', what)
return response
}

但我收到以下错误:TypeError:您只能产生函数、promise、生成器、数组或对象,但传递了以下对象:“OK”

现在,“ok”是来自redis服务器的响应,这是有道理的。但我无法完全理解此类函数的生成器的概念。有什么帮助吗?

最佳答案

您不会产生 save('bar') 因为 SAVE是同步的。 (您确定要使用保存吗?)

由于它是同步的,您应该更改它:

exports.home = function *(next){
yield save('bar')
}

对此:

exports.home = function *(next){
save('bar')
}

它将阻止执行直到完成。

几乎所有其他 Redis 方法都是异步的,因此您需要yield它们。

例如:

exports.home = function *(next){
var result = yield redis.set('foo', 'bar')
}

关于javascript - 更好地理解 javascript 的产量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28690218/

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