Dart JS Interop 0.6.0 和 JS Promises - 解决

2024-03-01

Interop 或 dart2JS 似乎没有明确拦截 JS Promises。

ServiceWorkerContainer swContain = window.navigator.serworker;

swContain.register(workerScriptURI,scope).then((ServiceWorkerRegistration rego){
/// Here confirm scope and the state, handle and unregister if required.
)};

然而,如果不包装承诺和完成者,似乎就无法实现这一目标。当我这样的时候,我就无法以可靠的方式去工作。

长帖子在这里:https://groups.google.com/a/dartlang.org/forum/#!topic/web/_DCR6vMBm7Y https://groups.google.com/a/dartlang.org/forum/#!topic/web/_DCR6vMBm7Y

我正在运行的解决方法

所以从 0.6.0 开始效果很好:

@JS("Promise")
class Promise {

external void then(Function onFulfilled, Function onRejected);
external Static Promise resolve (dynamic value);
}

@JS("ServiceWorkerContainer")
class ServiceWorkerContainer {

external Promise register(String scriptURL, Map options)
}

main(){

    ServiceWorkContainer swCTX = navigator.serviceWorker;

    successHandler(dynamic value) {
       // Call Promise resolve(value) if the not settled.  Ultimately

       ServiceWorkerRegistration swRego = value;

       // Now call anything you want on the Rego, just wrap what you need.

    failureHandler(dynamic value) {
       // Deal with it here


    /// This the main show here.
    swCTX.register('script-name.dart.js', scope).then(allowInterop(successHandler), allowInterop(failureHandler))

}

我尝试将上述内容与现有的“dart:html”库混合,试图不包装太多。但由于隐藏进口和各种东西,它变得非常混乱。

一旦 async/await 与 Promise 对齐,所有的跳舞都将变得毫无意义。我省略了一些包装,基本上,如果您需要对象或其中的值,则需要包装。


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Dart JS Interop 0.6.0 和 JS Promises - 解决 的相关文章

随机推荐

  • 使用 XML 设置选项卡小部件的样式

    所以我在使用 xml 设计选项卡小部件时遇到了很大的困难 我搜索过的所有地方似乎都建议以编程方式执行此操作的解决方案 或者引用 actionBarTab 样式 gt 我想要实现的是使用生成的 qtabwidget 可绘制对象的自定义选项卡h
  • 我可以在 Google Apps 脚本上设置每小时特定时间的触发器吗?

    我有一个链接到谷歌表格文档的谷歌应用程序脚本 我想在每小时的顶部运行脚本 即恰好下午 1 00 00 下午 2 00 00 下午 3 00 00 等 我已经在 管理项目的触发器 设置中设置了每小时触发器 但是 这将在一小时内选择一个随机时间
  • 将外部模块 TypeScript 声明暴露给使用模块

    我有一个已发布的 TypeScript 模块 我们称之为shared stuff 旨在由其他 TypeScript 模块导入 这shared stuff模块具有第三方依赖项 但没有 types 范围声明 因此该模块内部有几个声明文件 lib
  • T-SQL UDF 与完整表达式运行时

    我试图通过在 SQL SERVER 中使用 UDF 使我的查询可读 但使用该函数时运行时间会急剧增加 以下是我正在使用的功能 create function DL trim all input varchar max returns var
  • 使属性不可枚举有什么好处?

    可枚举性是属性的三个属性之一 可写性 可枚举性和可配置性 我的问题是 在 JavaScript 中使属性不可枚举有什么好处 我知道我们通过使属性不可枚举来隐藏属性 但是隐藏属性有什么好处呢 我们可以访问不可枚举的属性吗 如果是 那么使它们不
  • Android ImageView连续放大和缩小

    有什么办法可以放大和缩小ImageView在Android中不断 我尝试使用下面的代码 但只有一个缩放功能可以工作 缩放 xml
  • iPhone 上 Objective C 中的静态字符串变量

    如何在 iPhone 中创建和访问静态字符串 目标 c 我声明static NSString str OldValue 在A类 如果我在 B 类中为此分配一些值str NewValue 该值对于 B 类中的所有方法都有效 但是 如果我在 C
  • Java线程中的定时器

    我有一个线程负责执行一些过程 我想让这些处理每 3 秒完成一次 我使用了下面的代码 但是当线程启动时 什么也没有发生 我假设当我为计时器定义任务时它会自动执行ScheduledTask在时间间隔内但它根本不做任何事情 我缺少什么 class
  • Swift 中的快速排序出现错误

    我正在 Swift 中使用高阶函数编写快速排序 但它给出了 error Int is not convertible to Int return quickSort array lesser pivot quickSort array gr
  • 使用 WEBrick 为 PHP Web 应用程序提供服务

    我是一名 PHP 开发人员 已经开始学习 Ruby on Rails 我喜欢启动和运行 Rails 应用程序开发是多么容易 我最喜欢的东西之一是 WEBrick 它使您不必为您正在处理的每个小项目配置 Apache 和虚拟主机 WEBric
  • BitBucket WebHook 詹金斯

    我想配置 bitbucket 来触发 jenkins 构建 我花了一些时间研究这个问题 所有答案都来自几年前 但没有找到任何指南 因为从那以后事情似乎发生了变化 我正在尝试做的事情 将位桶推送到特定分支会触发构建 我有什么 Bitbucke
  • 在 IE 中通过 Iframe 传递参数时出现问题

    我正在尝试从我的网站执行 HTTP GET 到通过 iframe 引入的另一个网站 在 Firefox 上 您可以在源代码中看到 iframe src 中存在正确的 url 及其正确的参数 并且它可以工作 在 IE 上 您可以在源代码中看到
  • 函数参数中没有 LHS 的“双右箭头类型”是什么意思

    我无法解释指定为没有 LHS 左侧 的函数参数的 双右箭头类型 例如 gt Int来自 to Int但什么只是 gt Int意思是 例如请参阅第一个参数foo下面的方法 是什么类型f Is it Int gt Int gt Int 对于定义
  • 何时在 Java 中使用 StringBuilder [重复]

    这个问题在这里已经有答案了 一般认为最好使用StringBuilder用于Java中的字符串连接 情况总是如此吗 我的意思是 创建一个StringBuilder对象 调用append 方法和最后toString 已经较小然后将现有字符串与
  • 我无法再使用 npm 安装

    Npm 工作得很好 然后今天我尝试使用以下命令安装 ngui tab npm install ngui tab save 它给了我以下错误 0 info it worked if it ends with ok 1 verbose cli
  • 错误:点太少,无法用 3 个点计算椭圆? -R

    日安 我正在策划一个pca与factoextra包裹 我对每个因素有 3 分 并且想在每个因素周围画上椭圆 但我收到错误Too few points to calculate an ellipse 可以在 3 个点周围绘制椭圆ggplot2
  • 可以在结构声明*之后派生属性吗?

    我正在使用宏来扩展原始结构 pub struct MyTypedNumber pub u32 struct impl my features MyTypedNumber The struct impl my features宏可以实现以下功
  • 使用 Javascript/jQuery 更改 Telerik RadEditor 的值

    我正在尝试使用 Javascript 手动清理 Telerik RadEditor 的 HTML 但我似乎找不到存储该值的正确位置 以便在回发时保存该值 这是我的JS function jQuery fixHash function htm
  • 如何覆盖功能组件中的导航选项?

    要使用类组件覆盖导航选项 它会是这样的 export default class SomeClass extends Component static navigationOptions navigation gt return title
  • Dart JS Interop 0.6.0 和 JS Promises - 解决

    Interop 或 dart2JS 似乎没有明确拦截 JS Promises ServiceWorkerContainer swContain window navigator serworker swContain register wo