Следующее оставляет s null после завершения чтения файла:
String s;
new File('etc.stk').readAsString().then((String contents) {
s = contents;
});
// s is null here.
Есть ли способ сохранить (или клонировать) s, или я вынужден использовать его только в области .then?
У меня есть несколько тысяч строк кода компилятора/интерпретатора, который анализирует и запускает содержимое файла, и я бы предпочел, чтобы они не находились внутри новой области файлов.
ИЗМЕНИТЬ
Чтобы предоставить больше контекста, я пытаюсь сделать что-то вроде
new File('etc1.stk').readAsString()
.then((String script) {
syntaxTree1 = buildTree(script);
});
new File('etc2.stk').readAsString()
.then((String script) {
syntaxTree2 = buildTree(script);
});
и иметь доступ как к синтаксисуTree1, так и к синтаксисуTree2 в последующем коде. Если смогу, я обдумаю Путь дротика.