Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用异步/等待调用挂起vue组件_Javascript_Vuejs2_Async Await_Vue Component - Fatal编程技术网

Javascript 使用异步/等待调用挂起vue组件

Javascript 使用异步/等待调用挂起vue组件,javascript,vuejs2,async-await,vue-component,Javascript,Vuejs2,Async Await,Vue Component,我使用vue框架迈出了第一步,但我无法解决以下问题 dateClick(arg) { this.cal.date = arg.date; this.cal.title = arg.resource.title; this.cal.resource = arg.resource.id; // const slots = (async() => { //

我使用vue框架迈出了第一步,但我无法解决以下问题

dateClick(arg)
        {
            this.cal.date = arg.date;
            this.cal.title = arg.resource.title;
            this.cal.resource = arg.resource.id;

            // const slots = (async() => {
            //     return await dataService.getSlots(arg);
            // })().catch(console.error);
            // console.log(slots);

            (async() => {
                const slots = await dataService.getSlots(arg);
                console.log(slots);
            })().catch(console.error);
        }
异步函数中的console.log工作正常并返回插槽。最后,我还需要在当前Vue组件中设置一个数据属性,如下所示。cal.slots=slots。但这不起作用,总是没有定义。我还尝试使用上面的注释代码返回wait-这将导致“Promise{pending}”。想不出如何解决这个问题吗?

试着这样做:

async dateClick(arg) {
  ...
  this.cal.slots = await dataService.getSlots(arg);
  ...

我已经试过了,但是如果我在这个解决方案之后创建一个console.log(this.cal.slots),它会产生“{ob:Observer}”…如果您的组件
数据
中有
cal.slots
,那就好了。这意味着vue正在监视此属性,以便在模板发生更改时反应性地重新渲染模板。我认为您是对的,目前它正在按预期工作-谢谢!