Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript异步/承诺,承诺待定,现在缺失)参数列表后_Javascript_Node.js_Express_Promise_Async Await - Fatal编程技术网

Javascript异步/承诺,承诺待定,现在缺失)参数列表后

Javascript异步/承诺,承诺待定,现在缺失)参数列表后,javascript,node.js,express,promise,async-await,Javascript,Node.js,Express,Promise,Async Await,我一直通过以下代码存根获得承诺{pending}: const files = require('./controllers/search/files'); console.log( (async() => { return new Promise((resolve, reject) => { resolve(await files.getArray(PATH)); }); })() ); Node.JS在解析

我一直通过以下代码存根获得承诺{pending}:

const files = require('./controllers/search/files');
console.log(
    (async() => {
        return new Promise((resolve, reject) => {
            resolve(await files.getArray(PATH));
        });
    })()
);
Node.JS在解析()后一直说我丢失了),但我不知道问题出在哪里。
我正在使用Express.JS和Node.JS。我试图从目录中获取文件名,并将它们存储在数组中以供进一步使用。

语法错误是因为
wait
仅在
async
函数中允许,而
((解析,拒绝)=>{…}
是常规函数

问题是
newpromise
是Promise构造反模式。不需要它,因为已经存在Promise(考虑到
files.getArray(PATH)
返回一个Promise)

另一个问题是
async
是返回承诺的常规函数的语法糖。不可能从
async
iLife返回值并与
console.log
同步使用

由于还不支持,代码应该用
async
iLife包装:

(async() => {
  console.log(await files.getArray(PATH));
})()

据我所见,
Promise()
回调缺少一个
async
。而且你不需要等待外部生命结束。你需要在那里等待另一个生命来立即看到结果。
async
应该移动到
Promise
回调:
新承诺(async(resolve,reject)=>{…})
既然
files.getArray(PATH)
已经返回了一个承诺,为什么还需要另一个呢?