我在Node.js中使用Promise模块来读取目录中的文件,如下所示。
var promise = require("promise");
var fs = require("fs");
var readdir = promise.denodeify(fs.readdir);
var readDirPromise = readdir("/Users/sashi/Documents/javascript/telegram")
readDirPromise
Promise {
_75: 0,
_83: 1,
_18:
[ '.DS_Store',
'arica.txt',
'iquitos.txt',
'lapaz.txt',
'puntaarenas.txt',
'testingSashi_bot.js' ],
_38: null }
_75,_83,_18,_38是什么?他们总是一样的数字吗?因为我可以随时获取我的文件列表
console.log(readDirPromise._18)
或者数字会根据情况而改变吗?
提前谢谢你:)
修改
我实验了一下。看起来_83用于表示承诺是否得到解决。见下文。
function readJSON(filename){
return readFile(filename,'utf8').then(JSON.parse,console.log);
}
当承诺尚未解决时。
readJSON("./Places/arica.txt")
Promise { _75: 0, _83: 0, _18: null, _38: null }
如果Promise已解决但出现错误。
Promise {
_75: 0,
_83: 2,
_18: SyntaxError: Unexpected token I in JSON at position 0
at parse (<anonymous>)
at tryCallOne (/Users/sashi/node_modules/promise/lib/core.js:37:12)
at /Users/sashi/node_modules/promise/lib/core.js:123:15
at flush (/Users/sashi/node_modules/asap/raw.js:50:29)
at process._tickCallback (internal/process/next_tick.js:172:11),
_38: null }
如果Promise得到解决且没有错误。
Promise {
_75: 0,
_83: 1,
_18:
{ name: 'lapaz',
description: 'La Paz is the capital of Bolivia. It is one of my favorite cities because its crazy.' },
_38: null }
答案 0 :(得分:0)
我不会使用以_18
开头的任何内容,因为它可能只供内部使用。
.then
?你总是const fs = require('fs')
const { promisify } = require('util')
const readdir = promisify(fs.readdir)
readdir('/Users/anh/Documents')
.then(function (files) {
console.log(files)
})
并得到结果。请参阅下面的示例
ng new --style=styl PROJECT_NAME