如何停止 DartPad 中的程序?

How to STOP a program in DartPad?

使用DartPad,如何在不丢失所有代码的情况下停止当前程序?

事实上,好像只有:

答案不是:

(因为显然它不会先停止当前代码,实际上会并行开始后续运行!***)

(因为如果您需要读取快速变化的控制台输出怎么办?--那将消失)

*** 您可以使用以下代码验证此行为:

import 'dart:async';

void main() {
  
  int iter = 0;
  
  Timer myTimer = Timer.periodic(Duration(milliseconds: 10), (timer) {
    iter++;
   
    int temp = iter %1000;
    
    print("iter = $iter");
    print("iter %1000 = $temp");
  });

}

DartPad 中还没有停止程序的方法。以下是 GitHub 上的一些相关问题:

https://github.com/dart-lang/dart-pad/issues/668

https://github.com/dart-lang/dart-pad/issues/704

由于 DartPad 可以 运行 Flutter 应用程序,您可以制作自己的停止按钮。

Run code sample in DartPad.

import 'package:flutter/material.dart';
import 'dart:async';

void main() {
  runApp(MyApp());
  runDart();
}

Timer? myTimer;

void runDart() {
  int iter = 0;
  myTimer = Timer.periodic(const Duration(milliseconds: 10), (timer) {
    iter++;
    int temp = iter %1000;
    print("iter = $iter");
    print("iter %1000 = $temp");
  });
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Center(
        child: ElevatedButton(
          child: const Text('Stop'),
          onPressed: () {
            myTimer?.cancel();
          },
        ),
      ),
    );
  }
}

Dartpad 目前不提供此功能,实现您想要的唯一方法是关闭浏览器上的 Dartpad 选项卡,然后重新打开并继续。在 dart 上编写时,只要您连接到互联网,您的代码就会被缓存并因此保存,因此当您关闭浏览器并打开它时,您可以从您离开的地方继续。如果您在某个时候无法访问互联网,您所做的任何更改都不会保存,并且在您关闭浏览器中的该选项卡时可能会丢失。

如您所知,RUN 按钮运行您的代码; REST 按钮撤消上次打开 Dartpad 后对 Dartpad 所做的任何更改