在我的控制器中,fn函数在正确定义我的变量之前执行return.suucess()。在这种情况下,是ytb对象。 “ items”的sails.log是正确的,但“ ytb”没有返回。
我也尝试了Promise.then和.all。另外,使用async.each()并删除此函数内的await。
fn: async function (inputs, exits) {
var url = require('url');
var items = await Collection.find({});
_.each(items, async item => {
if (item.youtube_url) {
var ytbUrl = item.youtube_url;
var regexBaseUrlYtb = new RegExp('(https://www.youtube.com/channel/)');
if (regexBaseUrlYtb.test(ytbUrl)) {
var ytbIdChannel = ytbUrl.replace(regexBaseUrlYtb, '');
var ytbChannel = await sails.helpers.youtubeApi(ytbIdChannel);
item.ytb = {};
Object.assign(item.ytb, ytbChannel);
}
}
sails.log('items: ', item)
});
return exits.success({
items
});
}
我希望ytb对象也将与对象项一起在视图中传递,但是items对象是在没有ytb对象的情况下传递的。
通常,我希望返回exits.success()仅在函数完成后运行
谢谢。