小编Coe*_*nth的帖子

Vue 异步/等待与 $emit

我有一个对话框组件,它在提交时执行两个异步函数。我的目标是保持对话框打开并显示加载状态,直到两个功能完成。之后,我想关闭对话框。

我的提交函数在父组件中定义,如下所示:

 async submit() {
    await this.foo1();
    await this.foo2();
}
Run Code Online (Sandbox Code Playgroud)

该函数作为 props 传递给对话框组件:

<app-dialog @submit="submit" />
Run Code Online (Sandbox Code Playgroud)

在我的对话框组件中,单击按钮后,我尝试执行以下操作:

async onClick() {
    await this.$emit('submit');
    this.closeDialog();
},
Run Code Online (Sandbox Code Playgroud)

但是,对话框会立即关闭,而不是等待执行提交。实现这一目标的最佳方法是什么?

javascript async-await vue.js

12
推荐指数
2
解决办法
2万
查看次数

绝对设备方向

我正在尝试读取绝对的DeviceOrientation事件值以创建HTML5罗盘移动Web应用程序。

如果使用此代码,则可以毫无问题地获取alpha,beta和gamma值:

window.addEventListener('deviceorientation', function(event) {
          alpha = event.alpha;
          beta = event.beta;
          gamma = event.gamma;
  });
Run Code Online (Sandbox Code Playgroud)

但是,这些值对我没有帮助,因为我需要获取绝对值才能找到North的确切位置等。我找到了这篇文章,其中解释了如何使用event的绝对值。

当我将代码更改为此:

window.addEventListener('deviceorientationabsolute', function(event) {
    alpha = event.alpha;
    beta = event.beta;
    gamma = event.gamma;
    var absolute = event.absolute;
});
Run Code Online (Sandbox Code Playgroud)

Alpha,Beta和Gamma值设置为null。这对我来说很奇怪,因为event.absolute值设置为true。据此,应该显示事件值。

任何人有或有任何类似的问题?任何帮助,将不胜感激; 另外,如果有HTML5 Compass App的一些实用示例,将其发布在此处会很有帮助。

先感谢您!

html5 event-handling motion device-orientation compass

5
推荐指数
1
解决办法
577
查看次数