gpt4 book ai didi

javascript - 丢失从共同包装函数传递到另一个函数的参数

转载 作者:行者123 更新时间:2023-12-03 06:25:12 25 4
gpt4 key购买 nike

我正在使用最新的辅助模块 (4.6)。

这是一个 Koa 中间件。因此它已经被 co() 包装了。

create: function * () {
try {
this.body = yield services.createIt({obj: true})
} catch (err) {
this.body = { "errors": err.details }
this.status = err.status
}
}

它正在调用我用 co 手动包装的另一个生成器函数:

const co = require('co')

createIt: co(function * (obj) {
console.log(obj) // --> undefined
}

为什么我要“松开”参数?

最佳答案

函数co立即使用async/await语义执行给定的生成器函数。如果您只是从 Koa 中间件中使用它,则不需要使用 co 包装 createIt 函数,或者您可以只使用 co.wrap 将生成器变成一个返回 Promise(延迟 Promise)的函数。检查https://github.com/tj/co/blob/master/index.js#L26

create: function * () {
try {
this.body = yield services.createIt({obj: true})
} catch (err) {
this.body = { "errors": err.details }
this.status = err.status
}
}

服务.js

const co = require('co')

createIt: function * (obj) {
console.log(obj)
}

// OR

createIt: co.wrap(function *(obj) {
console.log(obj);
});

关于javascript - 丢失从共同包装函数传递到另一个函数的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38689176/

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