В моем контроллере функция fn выполняет return.suucess () до того, как мои переменные будут правильно определены.В этом случае объект ytb.Файл sails.log "items" правильный, но "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 также будет передан с элементом object в представлении, но объект items передан безобъект ytb.
Кроме того, в общем, я ожидаю, что return exits.success () запускается только после завершения функции
Спасибо.