1
下面的葉子小號空文件中讀取後退出:保存在DART範圍的對象以外的範圍
String s;
new File('etc.stk').readAsString().then((String contents) {
s = contents;
});
// s is null here.
有沒有辦法保存(或克隆)S,還是我不得不只用它在那麼範圍內?
我有幾千行的解析和運行文件內容的編譯器/解釋器代碼,並且不希望它們都在新的File範圍內。
編輯
爲了提供更多的背景,我試圖做的是一樣的東西
new File('etc1.stk').readAsString()
.then((String script) {
syntaxTree1 = buildTree(script);
});
new File('etc2.stk').readAsString()
.then((String script) {
syntaxTree2 = buildTree(script);
});
,並有機會獲得這兩個syntaxTree1和syntaxTree2在隨後的代碼。如果可以的話,我會繞過飛鏢道。
謝謝@Günter,我認爲建議1或3可能是我正在尋找。爲了提供更多的上下文,我試圖做的是讀入多個文件,將它們處理成單獨的語法樹,並且在讀取塊完成後仍然可以訪問樹。我想我不太清楚「完成」的意思。我會盡力遵循飛鏢道。 –
我將您的評論添加到了您的問題中,並使用我實際測試過的示例更新了我的答案。 –