多个Async / await JS功能

时间:2019-06-10 16:53:09

标签: async-await sails.js

在我的控制器中,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()仅在函数完成后运行

谢谢。

0 个答案:

没有答案