如何在稳定的1.1.1 Dart中绑定JavaScript回调和在JavaScript中绑定Dart回调(Dart2Js2Dart)?

如何在稳定的1.1.1 Dart中绑定JavaScript回调和在JavaScript中绑定Dart回调(Dart2Js2Dart)?,dart,dart-js-interop,Dart,Dart Js Interop,我想编写一些Dart函数“oKey”,它调用JavaScript函数“jsOnKey”(由于无法预测,所以也有成功或异常) 接下来,我希望JavaScript函数“onKey”将调用Dart函数“callbackFromJs”,以再次将控制权返回给Dart(成功或异常) 你能帮我完成这个完整流程吗?请假设每个边界上都有成功或异常-我不能依赖第三方代码-DART 2 JS 2 DART 为了给这个一般性的问题提供更多的上下文,我给出了示例代码 导入'dart:html'; void onKey(

我想编写一些Dart函数“oKey”,它调用JavaScript函数“jsOnKey”(由于无法预测,所以也有成功或异常)

接下来,我希望JavaScript函数“onKey”将调用Dart函数“callbackFromJs”,以再次将控制权返回给Dart(成功或异常)

你能帮我完成这个完整流程吗?请假设每个边界上都有成功异常-我不能依赖第三方代码-DART 2 JS 2 DART


为了给这个一般性的问题提供更多的上下文,我给出了示例代码

导入'dart:html';
void onKey(事件){
//我想用javascript调用一些东西
//函数callbackFromDart(){
//某物;
///*在Dart中调用callbackJs-将控制权返回Dart*/
// }
}
void callbackFromJs(){
//它应该从JavaScript调用
}
void main(){
InputElement-nameElement=querySelector('input[name=name]');
nameElement..占位符='输入文本'
…onKeyUp.听(onKey);
InputElement descriptionElement=querySelector('input[name=description]”);
descriptionElement..占位符='输入文本'
…onKeyUp.听(onKey);
}
首先看一看

对于您的情况,您只需传递回调来处理您称之为Js 2 Dart的内容:

将'dart:js'导入为js;
void onKey(事件){
onSuccess(){
//从Js调用的Dart回调
}
onError(){
//从Js调用的Dart回调
}
//假设js函数将2个回调作为参数
试一试{
//在JS:function a(){throw“throw from JS”;}
callMethod('myTopLevelFunction',[onSuccess,onError]);
} 
捕获(e){
打印(“省道侧的js错误捕捉:$e”);
}
}

Dart异常可以用Js端的同类代码捕获。

这不是答案。呼叫链是Dart 2 Js 2 Dart(不是Dart 2 Js)。问题是如何处理Dart中的JavaScript异常和JavaScript中的Dart异常(不是onSuccess,onError)。如果您遵循我的示例,则有Dart到js调用(调用
myTopLevelFunction
)和js到Dart调用(当从js调用回调时)。让我们检查您的答案准备情况:1。完成了,2。d2js异常-部分完成-未显示如何捕获特定异常类型。3.js2d-done(我想象代码)。4.js2d异常-未完成(未捕获特定异常的代码)。完成50%(只剩下异常类型)。请提供如何捕获特定异常类型以使您的答案非常好-我将为其评分,许多人将感谢显示捕获已知异常类型和捕获任何/未知异常。我同意,这并不能回答问题。您不能期望总是通过回调调用Dart函数。它应该是可以直接调用的…我不知道在哪里。非常令人沮丧。