我希望这是一个简单的问题,但找不到答案。在同步 Dart 代码中,您可以进行方法级联,例如:
var obj1 = new SomeClass()
..method1()
..method2(param1, param2)
..method3();
Run Code Online (Sandbox Code Playgroud)
假设相反,这些方法为异步代码返回 Futures。所以现在看来我们必须这样做:
var obj1 = new SomeClass();
await obj1.method1();
await obj1.method2(param1, param2);
await obj1.method3();
Run Code Online (Sandbox Code Playgroud)
方法级联是否适用于整个 async/await 结构?如果是这样,如何?
我正在尝试使用Polymer和Dart创建一些自定义元素,这些元素都扩展了一个自定义元素.遵循Seth Ladd的G +帖子的指示(虽然过时且未维护,但仍然是我可以找到的用于扩展自定义[非DOM]元素的唯一参考):
https://plus.google.com/+SethLadd/posts/7Ed4GUWZB26
这是我试图做的事情类型的精简示例代码:
基本元素HTML:
<link rel='import' href='packages/polymer/polymer.html'>
<polymer-element name='base-element'>
<template>
... stuff here relating to template ...
</template>
<script type='application/dart' src='base-element.dart'></script>
</polymer-element>
Run Code Online (Sandbox Code Playgroud)
基本元素Dart:
import 'package:polymer/polymer.dart';
@CustomTag('base-element')
class BaseElement extends PolymerElement {
BaseElement.created() : super.created();
... other base class stuff here ...
}
Run Code Online (Sandbox Code Playgroud)
第一个自定义子类元素HTML:
<link rel='import' href='packages/polymer/polymer.html'>
<link rel='import' href='base-element.html'>
<polymer-element name='sub-element-1' extends='base-element'>
<script type='application/dart' src='base-element.dart'></script>
</polymer-element>
Run Code Online (Sandbox Code Playgroud)
第一个自定义子类元素Dart:
import 'package:polymer/polymer.dart';
import 'base-element.dart';
@CustomTag('sub-element-1')
class SubElement1 extends BaseElement {
SubElement1.created() : super.created();
... other subclass stuff here ...
}
Run Code Online (Sandbox Code Playgroud)
我遇到的主要问题是Dart编辑器给我的错误(在运行时): …