所以,我正在创建不同的帮助器来减少控制器上的一些代码。所以我创建了一个名为Lookup的类来帮助我搜索数据库中的用户,并创建了一个searchAccountKey(key,callback)。因此,每当我使用此方法时,它似乎都可以工作,但是用户对象不返回任何内容而是返回用户。
我怀疑这种情况正在发生,因为收益率但是当我使用收益率时它会给我一个错误。
LookupHelper.js
'use strict';
const User = use('App/Model/User');
class LookupHelper {
// Grab the user information by the account key
static searchAccountKey(key, callback) {
const user = User.findBy('key', key)
if (!user) {
return callback(null)
}
return callback(user);
}
}
module.exports = LookupHelper;
UsersController(第44行)
Lookup.searchAccountKey(account.account, function(user) {
return console.log(user);
});
编辑:每当我把收益率放在User.findBy()
之前 The keyword 'yield' is reserved const user = yield User.findBy('key', key)
代码:
'use strict';
const User = use('App/Model/User');
class LookupHelper {
// Grab the user information by the account key
static searchAccountKey(key, callback) {
const user = yield User.findBy('key', key)
if (!user) {
return callback(null)
}
return callback(user);
}
}
module.exports = LookupHelper;
答案 0 :(得分:2)
关键字yield
只能在生成器中使用。 searchAccountKey
目前是正常功能。您需要在函数名称前使用*
才能使其成为generator。
static * searchAccountKey (key, callback) {
const user = yield User.findBy('key', key)
// ...
}
完成此更改后,您还需要使用Lookup.searchAccountKey
致电yield
。
yield Lookup.searchAccountKey(...)