【发布时间】:2021-10-06 23:24:53
【问题描述】:
我想创建一个返回未来的函数。值将在特定时间解析。但是,必须从回调内部解析该值。在 Javascript 中,我可以这样做:
function delay(seconds) {
return new Promise((resolve, reject) => {
setTimeout(resolve, seconds * 1000);
});
}
我在 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);
});
};
你可以像这样使用它: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 actually return from the method...
}
addEventListener(name, handler);
}
}
void main() {}
【问题讨论】:
-
你能告诉我们你尝试了什么/你的飞镖代码是什么样的吗?
-
@Samathingamajig 当然。
-
@Samathingamajig 完成。
标签: javascript dart asynchronous dom promise