小编gos*_*oy5的帖子

Dart 中是否有相当于 Javascript 的 `resolve` 函数(来自 Promise 构造函数)?

我想创建一个返回未来的函数。值将在特定时间解析。但是,该值必须从回调内部解析。在 Javascript 中,我可以做这样的事情:

function delay(seconds) {
  return new Promise((resolve, reject) => {
    setTimeout(resolve, seconds * 1000);
  });
}
Run Code Online (Sandbox Code Playgroud)

我在 Dart 中没有看到任何明确的解决方案,有人可以告诉我一种方法来做到这一点(或解决这个问题的方法)吗?如果您需要任何澄清,请随时提出评论。

编辑:为了更清楚,我将提供我创建的上下文和源代码。

我正在尝试创建一个在元素发生单个事件后返回的函数(实际上是方法)。我首先用 Javascript 写的 -

HTMLElement.prototype.on = function(eventName) {
    return new Promise(function(resolve, reject) {
        var handler = function(event) {
            resolve(null);
            this.removeEventListener(eventName, handler);
        };
        this.addEventListener(eventName, handler);
    });
};
Run Code Online (Sandbox Code Playgroud)

你可以这样使用它await myButton.on("click"); alert("Button clicked first time");

为了玩转,我尝试在 Dart + HTML 中重新创建它,这是到目前为止的代码。

import "dart:html";

extension on HtmlElement {
  on(String name) {
    void handler(Event event) {
      removeEventListener(name, handler);
      // Do something to …
Run Code Online (Sandbox Code Playgroud)

javascript dom asynchronous promise dart

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

标签 统计

asynchronous ×1

dart ×1

dom ×1

javascript ×1

promise ×1