Asyn c write
без ожидания выполнения обещания небезопасно и для deno.
Для практической демонстрации:
// If safe the file content would be ABCDEFGHIJ
async function main() {
let n = new Uint8Array(1);
const file = await Deno.open("bar.txt", { write: true, create: true });
for (var i = 65; i < 75; i++) {
n[0] = i;
Deno.write(file.rid, n);
}
}
main();
на моей linux коробке bar.txt
содержимое не ABCDEFGHIJ
, а `JJ '.
Обратите внимание, что этот конкретный пример на самом деле показывает две проблемы:
- нет безопасного доступа к файловому ресурсу при использовании
Deno.write
без await
- совместное использование одного и того же последнего
i
l oop значения переменной J
между write()
вызовами.